I have two classes with a one-to-many relationship
Table1 (1) ---- (n) Table2
coded like this:
Code:
class Table1 {
...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "table1", fetch = FetchType.LAZY)
private List<Table2> table2List;
...
}
class Table2 {
...
@JoinColumn(name = "`idTable1`", referencedColumnName = "id")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Table1 table1;
...
}
In my code I have
Code:
Table1 t1 = new Table1();
// add Table2 records
for (int I=0;i<24;i++)
{
Table2 t2 = new Table2();
t2.setTable1(t1);
t1.getTable1List().add(t2);
}
session.beginTransaction();
session.save(t1);
session.getTransaction().commit();
session.clear();
Which generates:
- 1 Table1 Insert
- 24 Table2 Insert
as expected.
Later in the code I update t1:
Code:
t1.setSomeField(someValue);
session.beginTransaction();
session.saveOrUpdate(t1);
session.getTransaction().commit();
Which generates:
- 1 Table1 Update
- 24 Table2 Select
- 24 Table2 Update
Is that what is expected? (I expected only one Table1 Update.)
What should I do to ensure that only Table1 is updated?
Thanks
Steve