我有一个班级
@Getter
@Setter
@Entity
public class Product {
@Id
@GeneratedValue
private Long id;
}
// -----------------------------------
@Entity
@Getter
@Setter
public class ProductPrice {
@Id
public Long getId() {
return product.getId();
}
@OneToOne
private Product product;
@Column(precision = 38, scale = 2)
private BigDecimal price;
}
我收到了错误
org.hibernate.MappingException: Could not determine type for: com.myapps.model.Product, at table: product_price, for columns: [org.hibernate.mapping.Column(product)]
如您所见,我使用Product类中的id作为ProductPrice类的id。我们可以这样做吗?如果可以,那就太好了。但如果不能,我将使用常规Long类型作为ProductPrice的id。请给我一个建议。感谢
答案 0 :(得分:1)
我认为您需要声明属性产品的列。
@Entity
@Getter
@Setter
public class ProductPrice {
@Id
public Long getId() {
return product.getId();
}
@OneToOne
@JoinColumn(name="PRODUCT_ID", unique= true, nullable=true, insertable=true, updatable=true)
private Product product;
@Column(precision = 38, scale = 2)
private BigDecimal price;
}