首先,正如您所看到的,我使用Java,特别是NetBeans IDE。 所以,我有一个类Person,它扩展了两个类:Trainer和Athlete。
总的来说,我创建了一个新的 ArrayList list = new ArrayList();
然后,我用我创建的对象填充列表并使其持久化。
Trainer tr1= new Trainer("George","White","England",5665);
Athlete ath1= new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
list.add(ath1);
Athlete ath2=new Athlete("Iggy","Black","USA",2,'f',"10/4/1988",70,175,"U.S.A.");
list.add(ath2);
tr1.setAthletes(list);
(那些领域,分别在班级培训师和运动员的构造者中明确定义。
我也让他们坚持不懈。
em2.persist(tr1);
em2.persist(ath1);
em2.persist(ath2);
但最后,尽管运动员和训练师仍然坚持不懈,但我所拥有的名单却没有。
这就是我的问题开始的地方,我希望这些列表能够持久存在。
在这里,这些列表正在运行和测试,没有问题,但它们很适合Java级别,而不是ObjectDB级别。
我应该重新开始吗?
任何可以帮助我和这些家伙的人?我真的需要帮助,这很严重。
PS:当然,我已经完成了所需的导入,例如
import javax.persistence.*;
import java.util.*;
EntityManagerFactory emf2 = Persistence.createEntityManagerFactory("$objectdb/db/personas2.odb");
EntityManager em2 = emf2.createEntityManager();
em2.getTransaction().begin();
em2.close();
emf2.close();
答案 0 :(得分:0)
但最后,尽管运动员和训练师仍然坚持不懈,但我所拥有的名单却没有。
一些想法:
确保您commit
该交易(虽然您提到该实体已被保留)。
如果Trainer
和Athlete
之间的一对多关联是双向的(可能会显示您的实体),请务必设置“其他”链接的一面正确,像这样:
Trainer tr1 = new Trainer("George","White","England",5665);
Athlete ath1 = new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
ath1.setTrainer(tr1); // set the other side of the link
list.add(ath1);
...
tr1.setAthletes(list);
或在您的实体中添加方法(在Trainer
此处):
public void addToAthletes(Athlete athlete) {
athlete.setTrainer(this);
this.athletes.add(athlete);
}
并将以上行替换为:
Trainer tr1 = new Trainer("George","White","England",5665);
Athlete ath1 = new Athlete("Mairy","Willians","France",1,'f',"21/3/1988",68,172,"France");
tr1.addToAthletes(ath1);