我正在尝试向我的Embeddable类添加一个Transient属性。这就是我所拥有的:
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@Embeddable
public class PackageProduct
{
@Field
private String productId;
@Transient
private Product product;
}
PackageProduct在Package.java中使用,就像这样;
@ElementCollection(targetClass=PackageProduct.class, fetch = FetchType.EAGER)
private Set<PackageProduct> packageProducts;
但是,这会引发以下异常:
Caused by: org.hibernate.MappingException: Could not determine type for: *.*.*.Product, at table: Package_packageProducts, for columns: [org.hibernate.mapping.Column(packageProducts.product)]
如果我使用以下命令注释我的PackageProduct类,则不再抛出异常:
@Access(AccessType.FIELD)
我试图理解为什么它适用于类级别@Access注释。任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
在休眠中,您可以在字段或方法上应用所有注释,同时混合使用是不允许的。要覆盖此for(var obj in this.prefix){
for(var prop in obj){
console.log("property name: " + prop + ", property value: " + obj[prop]);
}
}
是必需的。在您的产品类中,如果您使用此类情况,请纠正此问题。