假设我有这两个类:
@Entity
public class A {
@GeneratedValue @Id
Integer aNum;
ArrayList<B> bS;
public A(){
bS = new ArrayList<B>();
}
public void addB(B b){
bS.add(b);
}
}
和
@Entity
public class B {
@GeneratedValue @Id
Integer bNum;
String text;
public B(String t){
this.text = t;
}
public String getText(){
return this.text;
}
}
基本上 A 类有一个包含 B 类对象的数组列表,我想将它们插入到 objectdb 数据库中:
A a = new A();
B b1 = new B("text1");
B b2 = new B("text2");
a.addB(b1);
a.addB(b2);
db.getTransaction().begin();
db.persist(a);
db.persist(b1);
db.persist(b2);
db.getTransaction().commit();
当我尝试从数据库中删除 b1 时,问题就来了。它被从它的类中删除,但如果我检查 A 的数组列表,它仍然保留有空值。如果我想在不手动操作的情况下将其删除,我该怎么办?我可以手动从arraylist中删除b1,然后删除b1,但我想知道是否有另一种方法可以删除它而无需手动从arraylist中删除它。
这就是我得到的:
谢谢。
编辑:这就是我删除的方式
db.getTransaction().begin();
B b = db.find(B.class, 2);
System.out.println(b.getText());
db.remove(b);
db.getTransaction().commit();