2
我使用Ehcache提供程序来提供Hibernate二级缓存。它缓存一个一对多的集合,与@Cache
注释,但不缓存一到一个:休眠二级缓存一对一不起作用
//hb annotations
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "user")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "details")
private Details details;
//getters, setters, constructors etc.
}
//hb annotations
public class Details {
@GenericGenerator(name = "generator", strategy = "foreign",
parameters = @Parameter(name = "property", value = "user"))
@Id
@GeneratedValue(generator = "generator")
@Column(unique = true, nullable = false)
private Integer id;
@OneToOne
@PrimaryKeyJoinColumn
private User user;
//getters, setters, constructors ets.
}
我使用Spring JpaRepository获取数据:
userRepository.findOne(id);