EJB事务和休眠会话

时间:2019-12-06 15:06:57

标签: java hibernate ejb

假设我检索一个对象用户,该对象用户与惰性声明的UserParameters具有一对多关系。 现在假设我通过标记为

的业务方法检索该User对象。
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)

,然后在该方法上执行类似userObject.getUserParameters().get(0)的操作。但是我得到一个错误:

  

无法延迟初始化角色集合:... *** ...,无法   初始化代理-没有会话

由于懒惰了它尝试连接到数据库的参数,但是由于没有事务,我们(由于尚不完全清楚的原因)也没有会话(这是必需的)。

现在我该怎么办,每次方法访问任何对象的某些惰性属性时,都不应将其标记为必需?

我应该手动打开一个会话,在访问惰性属性之前添加该实体吗?

原因是我执行的通话很长,完全在TransactionRolledBack上进行。但是,此调用仅从数据库读取,而不持久化或写入任何内容(因此我将其设置为Transaction NOT_SUPPORTED)。但是,在此过程的中间,需要访问一些惰性属性,这需要一个活动的休眠会话,这使我不必处于非事务阶段。

这是我之前其他人遇到的一些常见问题吗?有什么最佳做法吗?

谢谢

Davide

0 个答案:

没有答案