是否有可能(不编写自定义 SQL)让 Eclipselink 信任我是否在合并时执行更新或插入,而不是执行选择,然后执行更新或插入?如果是这样,怎么做?
在我看来,我想使用一个临时标志和一个自定义 if 语句来确定该项目是否已经在数据库中,并指示 eclipselink 执行所需的查询。我了解 Hibernate 将其提供为 update() 和 save()
几个值得注意的点:
- 我有大量正在批量合并的对象,因此persist() 不适合我(这些对象也不存在于库中,除非它们被传入以进行合并)
- 因为要合并的对象太多,不太可能有任何缓存命中,所以eclipselink一直无法判断它之前是否通过缓存发送过
- 因为进入(在这种情况下是非本地数据库)的对象数量是一个问题,特别是考虑到我可以在操作发生之前知道哪些是需要的
- 我真的不想切换到 Hibernate
谢谢。也许我错过了一些明显的东西!