ebean
ebean copied to clipboard
ebean-redis put empty value for natural keys
Expected behavior
The value of natural key should be the bean id.
Actual behavior
The EncodeSerializable always returns new ByteArrayOutputStream().toByteArray(), results empty value in redis cache.
Steps to reproduce
- Setup ebean datasource
- Setup ebean-redis
- Setup entity natural keys
- Call API get list
</dependencies>
...
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean</artifactId>
<version>15.3.1</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-spring-txn</artifactId>
<version>15.3.1</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-querybean</artifactId>
<version>15.3.1</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>querybean-generator</artifactId>
<scope>provided</scope>
<version>15.3.1</version>
</dependency>
<dependency>
<groupId>io.ebean</groupId>
<artifactId>ebean-redis</artifactId>
<version>15.3.1</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.3</version>
</dependency>
</dependencies>
@Getter
@Setter
@Cache(naturalKey = {"hotelId", "roomId", "date"})
@Entity
@Table(name = "room_availability")
public class RoomAvailability extends AbstractAuditedEntity {
private static final long serialVersionUID = 5782770949847017794L;
@Id
public UUID id;
@Column(name = "room_id")
private UUID roomId;
@Column(name = "hotel_id")
private UUID hotelId;
@Column(name = "status")
private String status;
@Column(name = "date")
private LocalDate date;
}