0

假设我有 3 个实体模型:

History.class
DetilHistory.class
Logs.class

我必须这样写我的代码:

//Create History
History h = new History(new Date(), 1, 1, 1);
h.save();

//Create Detil History
DetilHistory dh = new DetilHistory(1, 1, 1, h.id);
dh.save();

//Create Logs
Logs l = new Logs(1,1,1,dh.id);
l.save();

对于 dh.referecendIdOfHistory,我必须先获取 h.id。而且我必须先获取 dh.id 以获取 l.referecendIdOfDetilHistory。

但是,有时我必须像这样更改该代码下方的变量 h 或 dh :

h.closeDate= new Date();
h.value = 2;
h.save();

我也是为 Detil History 做的。

不幸的是,JPA 不能那样做。我知道 JPA 不允许这样做的原因。

我有以下问题:

  • 分离的实体传递给坚持
  • JPA 尚未初始化
  • ETC

我已经解决了它们:

- JPAPluginStartTx(rollback)
- JPA.em().flush(); JPA.em().getTransaction().commit();

有人可以告诉我最好的方法吗?

4

1 回答 1

0

你的 save() 方法是做什么的?也许您可以尝试获取 EntityManager 实例,使用 em.getTransaction().begin 打开事务,然后按顺序保存所有实体,然后提交事务。

于 2012-09-13T19:53:41.943 回答