Java 如何持久化具有两个@manytomany属性的Jpa实体
我有一个具有两个@manytomy属性的实体。这里的问题是,其中一个属性是持久的,而另一个属性不是。有什么问题吗。实体如下所示Java 如何持久化具有两个@manytomany属性的Jpa实体,java,jakarta-ee,persistence,jpa-2.0,Java,Jakarta Ee,Persistence,Jpa 2.0,我有一个具有两个@manytomy属性的实体。这里的问题是,其中一个属性是持久的,而另一个属性不是。有什么问题吗。实体如下所示 @Entity("payment") public class PaymentData implements Serializable { private Long pk; private Collection<PaymentItemData> paymentItem; /** * minorPaymentItem
@Entity("payment")
public class PaymentData implements Serializable
{
private Long pk;
private Collection<PaymentItemData> paymentItem;
/**
* minorPaymentItem
*
*/
private Collection<MinorPayItemData> minorPaymentItem;
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany
@JoinTable(name = "payitem_m_assig",
joinColumns =
@JoinColumn(name = "pay_item_id", nullable = false),
inverseJoinColumns =
@JoinColumn(name = "minor_pay_item_id", nullable = false))
public Collection<MinorPayItemData> getMinorPaymentItem()
{
return minorPaymentItem;
}
/**
* @param minorPaymentItem the minorPaymentItem to set
*/
public void setMinorPaymentItem(final Collection<MinorPayItemData> value)
{
this.minorPaymentItem = value;
}
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany
@JoinTable(name = "payitem_assigned",
joinColumns =
@JoinColumn(name = "pay_item_id", nullable = false),
inverseJoinColumns =
@JoinColumn(name = "new_pay_item_id", nullable = false))
public Collection<PaymentItemData> getPaymentItem()
{
return paymentItem;
}
/**
* Set the property paymentItem
*
* @param value -paymentItem
*
*/
public void setPaymentItem(final Collection<PaymentItemData> value)
{
this.paymentItem = value;
}
}
@Entity("minor")
public class MinorPayItemData implements Serializable
{
}
@Entity("major")
public class PaymentItemData extends MinorPayItemData
{
}
@实体(“付款”)
公共类PaymentData实现可序列化
{
私人长pk;
私人收款支付项目;
/**
*小额付款项目
*
*/
私人收藏小额付款项目;
@LazyCollection(LazyCollectionOption.FALSE)
@许多
@JoinTable(name=“payitem\u m\u assig”,
连接柱=
@JoinColumn(name=“pay\u item\u id”,null=false),
反向连接柱=
@JoinColumn(name=“次要付款项目id”,可空=假))
公共集合getMinorPaymentItem()
{
返回minorPaymentItem;
}
/**
*@param minorPaymentItem要设置的minorPaymentItem
*/
公共无效setMinorPaymentItem(最终收款值)
{
this.minorPaymentItem=值;
}
@LazyCollection(LazyCollectionOption.FALSE)
@许多
@JoinTable(name=“payitem\u已分配”,
连接柱=
@JoinColumn(name=“pay\u item\u id”,null=false),
反向连接柱=
@JoinColumn(name=“新付款项目id”,可空=假))
公共集合getPaymentItem()
{
退货付款项目;
}
/**
*设置属性paymentItem
*
*@param value-paymentItem
*
*/
公共作废setPaymentItem(最终收款值)
{
this.paymentItem=值;
}
}
@实体(“未成年人”)
公共类MinorPayItemData实现可序列化
{
}
@实体(“主要”)
公共类PaymentItemData扩展了MinorPayItemData
{
}
MinorPayItemData和PaymentItemData保存在同一数据库中。它们由一个分色柱分开
仅保留paymentItem属性。我做错了什么。您没有指定级联类型。尝试指定@ManyToMany(cascade=CascadeType.ALL);Cascade type对持久化字段的作用是什么。将字段与要持久化的实体一起持久化到数据库。我已经尝试过这个方法,但它不起作用。