Hibernate 在同一事务中混合原始查询和ORM操作
在同一个Hibernate 在同一事务中混合原始查询和ORM操作,hibernate,coldfusion,cfquery,stalestateexception,Hibernate,Coldfusion,Cfquery,Stalestateexception,在同一个cftransaction标记中使用cfquery和ORM操作混合使用原始查询安全吗 <cftransaction> <cfquery datasource="test">...</cfqueyr> <!--- A ---> <cfset var e = entityLoadByPK('SomeEntity', someId)> <!--- B ---> <cfset e.setSome
cftransaction
标记中使用cfquery
和ORM操作混合使用原始查询安全吗
<cftransaction>
<cfquery datasource="test">...</cfqueyr> <!--- A --->
<cfset var e = entityLoadByPK('SomeEntity', someId)> <!--- B --->
<cfset e.setSomeProperty('test')> <!--- C --->
<cfquery datasource="test">...</cfquery> <!--- D --->
</cftransaction>
我还尝试在ORM语句之后立即使用
ormFlush()。有没有办法在同一个cftransaction
中混合原始查询和ORM语句,并让语句按顺序运行?也许我完全误解了这个问题,但我现在很困惑。尝试使用Ormexecutequiry
ORMExecuteQuery("update SomeEntity set SomeProperty = 'test' where id = :id",
{"id"="someId"});`
这些命令会立即执行,并跳过ORM会话。我会再次仔细查看ormFlush()
。我相信这确实有效,我以前用过它,没有问题。@Henry,我必须等到星期一再检查一遍。如果您安装了CF,是否可以通过在表中插入3行(不带orm、orm、不带orm)并检查结果来确认您的声明?谢谢谢谢你的提示。然而,我没有花时间进一步调查这个问题,检查我的假设是否正确。您知道在混合原始查询和ORM操作时是如何处理的吗?以及为什么在我的情况下使用或mflush
不起作用?我很快会发布关于这个问题的补充信息。
ORMExecuteQuery("update SomeEntity set SomeProperty = 'test' where id = :id",
{"id"="someId"});`