0
我有一個超類產品和一個子類減少。現在我想讓子類覆蓋超類的屬性,所以它不會保留在數據庫中。我鼓勵它像這樣工作,但顯然休眠仍嘗試將Reduce的ProductType屬性存儲在數據庫中。有其他方法可以解決這個問題嗎?JPA,瞬態註釋不會覆蓋OneToOne?
@Entity
@Table(name="PRODUCT_INSTANCE")
public class Product {
private Integer id;
protected ProductType productType;
public Product(){
}
public Product(ProductType productType) {
this.productType = productType;
}
@OneToOne
public ProductType getProductType() {
return productType;
}
public void setProductType(ProductType type) {
this.productType = type;
}
@Transient
public ProductCategory getCategory() {
return productType.getCategory();
}
}
類和子類:
@Entity
@Table(name="REDUCTION")
public class Reduction extends Product {
private ProductType type;
private Integer id;
public Reduction(Double percentage, Double totalPrice) {
ProductCategory reductionCat = new ProductCategory("_REDUCTION_", new Color("", 130, 90, 80));
type = new ProductType();
type.setBuyPrice(0.0);
type.setBtw(BTW.PER_0);
type.setCategory(reductionCat);
}
@Override
@Transient
public ProductType getProductType() {
return type;
}
}
沒有,實際上沒有做我想要的,AttributeOverride只是讓休眠保存productType在不同的列。我想要的是,reduce類沒有保存productType。 –
看看代碼 – ssedano
那麼即使有了這些修改,hibernate仍然抱怨說,它不能保存ProductType,因爲它是一個臨時對象(當它試圖持久化Reduce對象時)。 –