The mapping is a simple 1-to-many relationships. I was able to insert new rows, but I can't update them. The program doesn't complain, nor does it throw any exceptions. I turned on show_sql to true, and I don't see any update statements. This is a simple program, but not sure why it doesn't work.
Thanks in advance.
public class Status implements Serializable
{
private String id;
private String status;
... With setters and getters
}
The mapping file is:
<class
name="Status"
table="status"
lazy="false"
>
<cache usage="nonstrict-read-write" />
<id
name="id"
column="id"
type="java.lang.String"
unsaved-value="null"
>
<generator class="uuid.hex">
</generator>
</id>
<property
name="status"
type="java.lang.String"
update="true"
insert="true"
column="status"
unique="false"
/>
public class Work implements Serializable
{
private String id;
private User user;
private Status status;
... With setters and getters
}
<class
name="Work"
table="work"
lazy="true"
>
<cache usage="read-write" />
<id
name="id"
column="id"
type="java.lang.String"
unsaved-value="null"
>
<generator class="uuid.hex">
</generator>
</id>
<many-to-one
name="user"
class="User"
cascade="none"
outer-join="auto"
update="true"
insert="true"
column="user_id"
not-null="false"
/>
<many-to-one
name="status"
class="Status"
cascade="none"
outer-join="auto"
update="true"
insert="true"
column="status_id"
not-null="true"
/>
</class>
In another class:
Work work = workManager.getWork(workId);
Status status = work.getStatus();
status.setId("2");
status.setStatus("pending");
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.lock(work, LockMode.NONE);
session.saveOrUpdate(work);
session.getTransaction().commit();
|