У меня есть объект, сопоставленный с Hibernate, который содержит идентификатор и коллекцию.В какой-то момент времени, когда объект содержит элементы в своей коллекции, я хочу сделать obj.setCollection(new ArrayList())
, и он должен удалить элементы из базы данных, которые были ранее в коллекции.Если кто-то может помочь, это будет очень ценно.Код для иллюстрации проблемы:
ORM: Foo 1- * Bar and Bar 1-1 Foo
class Foo {
Long id;
List<Bar> bars;
//getters & setters
}
<hibernate-mapping>
<class name="domain.Foo" table="Foos">
<id name="id" type="long" column="id">
<generator class="native" />
</id>
<list name="bars" lazy="true" cascade="all">
<key column="FOO_ID" not-null="true" />
<index column="SEQUENCE" />
<one-to-many class="domain.Bar" />
</list>
</class>
</hibernate-mapping>
@Entity
@Table(name="Bars")
public class Bar {
private Long id;
private Foo foo;
private String name;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne
@JoinColumn(name="FOO_ID", insertable=false, updatable=false)
public Foo getFoo() {
return foo;
}
public void setFoo(Foo foo) {
this.foo = foo;
}
@Column(name="NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}