I faced with issue on Hibernate 2 level chache
Dependencies:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
ehcache.xml:
<ehcache>
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- Default cache settings -->
<defaultCache
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
<cache name="com.agps.model.jpa.UserAccount"
maxElementsInMemory="100"
eternal="false"
timeToLiveSeconds="600"
overflowToDisk="true"/>
Cache entity:
@Data
@Entity
@Table(name = "user_account")
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY,
region="com.agps.model.jpa.UserAccount")
public class UserAccount extends AbstractEntity {
@Id
@Column(name = "id", nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Basic
@Column(name = "first_name", nullable = true, length = 32)
private String firstName;
@Basic
@Column(name = "last_name", nullable = true, length = 32)
private String lastName;
Service:
@RequiredArgsConstructor
@Component(value = "userAccountDtoAssembler")
public class UserAccountDtoAssemblerImpl implements UserAccountDtoAssembler {
private final UserAccountRepository userAccountRepository;
@Override
public UserAccountDto readDtoByUsername(String username) {
UserAccount userAccount = userAccountRepository.findByEmail(username);
return assembleDto(userAccount);
}
When I call method findByEmail with the same username, hibernate always makes call to DB (select ) I use Hibernate 5, ehcache 2.10.9.2
What's happen? Thanks