休眠@Transient MappingException

Hibernate @Transient MappingException

我正在尝试将瞬态 属性 添加到我的可嵌入 class。这是我拥有的:

@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 class,则不再抛出异常:

@Access(AccessType.FIELD)

我想了解为什么它与 class 级别的 @Access 注释一起使用。任何帮助表示赞赏。谢谢

在 hibernate 中,您可以在字段或方法上应用所有注释,同时混合使用不是 allow.To 覆盖此 @Access 是 needed.In 您的产品 class 如果您正在使用这种情况,请纠正此问题。