我正在尝试将关系“OneToMany”添加到我正在创建的数据库中,以测试 ObjectDB 是否对我有好处。
到目前为止我所尝试的:
@Entity
public class Parent {
@Id
private int parentID;
private int childFK;
Set<Child> children;
public Parent(int p,int c) {
this.parentID = p;
this.childFK = c;
}
@OneToMany(orphanRemoval=true)
@JoinColumn(name="childFK")
public Set<Child> getChildren(){
return childern;
}
}
这个子类是:
@Entity
public class Child {
@Id
private int childID;
private String name;
public Child(int c,String n) {
this.childID = c;
this.name = n;
}
}
我的主要方法是:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("$objectdb/db/test.odb");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Parent p = new Parent(01,02);
em.persist(p);
Child c = new Child(02,"bob");
em.persist(c);
em.getTransaction().commit();
这将创建数据库没有问题,但不存在任何关系。这是文档说明如何执行此操作。
我还尝试将 child 的实际实例添加到数据库中。这有点起作用,因为它知道有一个可用的数据库实例,但它不知道如何使用它。
我试过查询:
SELECT p.getChildren() FROM Parent p
这只是不返回这样的方法 getChildren()。
有任何想法吗?