Hibernate @Transient MappingException

时间:2016-04-13 18:36:40

标签: java hibernate hibernate-mapping transient

我正在尝试向我的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注释。任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

在休眠中,您可以在字段或方法上应用所有注释,同时混合使用是不允许的。要覆盖此for(var obj in this.prefix){ for(var prop in obj){ console.log("property name: " + prop + ", property value: " + obj[prop]); } } 是必需的。在您的产品类中,如果您使用此类情况,请纠正此问题。