nic*_* m. 5 java persistence jpa jta entitymanager
文件EntityManager.persist()说它会Make an instance managed and persistent.
它将实体持久化到数据库,但是当我调用该EntityManager.contains()方法来检查我刚刚持有的实体是否被管理时,它返回false.
我只想知道为什么会这样?也许有些东西我无法做到或者我忽略了什么?
建议将不胜感激:D
这真的很奇怪。根据Sun EJB3 规范:
该
contains()方法可用于确定当前持久化上下文中是否管理实体实例。该
contains方法返回 true:
- 如果实体已从数据库中检索,并且尚未删除或分离。
- 如果实体实例是新的,并且
persist已在该实体上调用该方法或已将持久操作级联到该实体。该
contains方法返回 false:
- 如果实例已分离。
- 如果该
remove方法已在实体上调用,或者删除操作已级联到实体。- 如果实例是新的,并且
persist尚未在实体上调用该方法或尚未将持久操作级联到它。请注意,级联持久化或删除的效果对于 contains 方法是立即可见的,而实体的数据库表示的实际插入或删除可能会推迟到事务结束。
contains您是否在同一笔交易中调用?
| 归档时间: |
|
| 查看次数: |
7486 次 |
| 最近记录: |