休眠@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 如果您正在使用这种情况,请纠正此问题。
我正在尝试将瞬态 属性 添加到我的可嵌入 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 如果您正在使用这种情况,请纠正此问题。