Код: Выделить всё
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Person {
@Column(name = "\"Name\"")
private String name;
// bi-directional one-to-one association to CarDetails
@OneToOne(cascade = CascadeType.ALL, optional = true, fetch = FetchType.EAGER, orphanRemoval = true, mappedBy = "owner")
private CarDetails carDetails;
public String getName() {
return this.name;
}
public void setName(String name) {
return this.name=name;
}
public CarDetails getCarDetails() {
return this.carDetails;
}
public CarDetails setCarDetails(CarDetails carDetails) {
if (carDetails == null) {
if (this.carDetails != null) {
this.carDetails.setOwner(null);
}
}
else {
carDetails.setOwner(this);
}
this.carDetails = carDetails;
return this;
}
}
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class CarDetails {
@Column(name = "\"RegistrationNumber\"")
private String registrationNumber;
// bi-directional one-to-one association to Person
@OneToOne(cascade = CascadeType.ALL, optional = false, fetch = FetchType.LAZY)
@PrimaryKeyJoinColumn
private Person owner;
public String getRegistrationNumber() {
return this.registrationNumber;
}
public void setRegistrationNumber(String registrationNumber) {
return this.registrationNumber=registrationNumber;
}
public Person getOwner() {
return this.owner;
}
public void setOwner(Person owner) {
this.owner = owner;
}
}
Код: Выделить всё
Я также читаю hibernate-docs-collection-cache, поскольку коллекции не кэшируются автоматически, я тоже пробовал:
Код: Выделить всё
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
// bi-directional one-to-one association to CarDetails
@OneToOne(cascade = CascadeType.ALL, optional = true, fetch = FetchType.EAGER, orphanRemoval = true, mappedBy = "owner")
private CarDetails carDetails;
Подробнее здесь: https://stackoverflow.com/questions/798 ... urns-no-ob
Мобильная версия