[英]How to persist a property of type List<Object> in JPA?
持久保存對象列表的最佳方法是什么? 我將JavaEE 7與JPA結合使用。 對象B也是一個實體。
我的模特
@Entity
public class ObjectA implements Serializable {
@Id @GeneratedValue
private Long id;
// What should I use here?
private List<ObjectB> objectList;
public ObjectA () {
this.objectList = new ArrayList<ObjectB>();
}
}
我的JPA電話
@Stateless
@JPA
public class ObjectJPA{
@PersistenceContext(unitName = "ObjectProjectPU")
private EntityManager em;
// How can I insert a record in the table for objectList here?
public void insertIntoObjectList(ObjectB objectB) {
em.persist(objectB); // This must be wrong?
}
}
我更喜歡的是我的objectList數據庫表如下所示:
id (ObjectA_id) | objectB_id or id | ObjectA_id | objectB_id
您的ObjectA類應如下所示。
@Entity public class ObjectA implements Serializable { @Id @GeneratedValue private Long id; // What should I use here? private List<ObjectB> objectList; @OneToMany(mappedBy = "objectB_id") public List<ObjectB> getObjectList() { return objectList; } public void setObjectList(List<ObjectB> listOfObjetB) { this.objectList = listOfObjetB; } public ObjectA () { this.objectList = new ArrayList<ObjectB>(); } }
這將在您的A類和B類之間建立關系。
正確遵循以下鏈接給出的示例。 它將幫助您了解JPA一對多關系。 :)
我發現這很容易。
ObjectA模型
@OneToMany
@JoinTable
(
name="OBJECTA_OBJECTB",
joinColumns={ @JoinColumn(name="ID", referencedColumnName="ID") },
inverseJoinColumns={ @JoinColumn(name="OBJECTB_ID", referencedColumnName="ID") }
)
private List<ObjectB> objectList;
JPA電話
public void insertIntoObjectList(ObjectB object) {
object.setSomeDataInObjectList(list); // just a random list here
em.persist(object);
}
ObjectB模型
@ManyToOne
ObjectA objectA;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.