CF9的EntityLoad()问题

时间:2010-08-12 16:25:17

标签: orm coldfusion

我刚开始使用CF9的ORM功能,并遇到了问题。

我已经设置了一个表 - 成员 - 其中有2条记录。

如果我尝试:

<cfscript>
members = EntityLoad("member");
writedump(members);
</cfscript>

...我应该得到一个成员对象数组;但是我得到了错误:

unexpected token: member near line 1, column 6 [from member]

The error occurred in \\vmware-host\Shared
Folders\Web\sites\testbed\webroot\orm\index.cfm: line 2
1 : <cfscript>
2 : members = EntityLoad("member");
3 : writedump(members);
4 : </cfscript>

如果我尝试:

<cfscript>
members = EntityLoad("member", {});
writedump(members);
</cfscript>

...我得到了2个成员对象的预期数组 - 但返回它需要5-10秒。

但是如果我要求一个独特的对象:

<cfscript>
members = EntityLoad("member", 1, true);
writedump(members);
</cfscript>

...我立刻得到了结果。

关于问题是什么的任何想法?

member.cfc

component output="false" persistent="true"
{
// identifier
property name="memberid" fieldtype="id"; 

// properties
property name="firstname";
property name="lastname";
property name="address1";
property name="address2";
property name="city";
property name="postcode";
property name="country";
property name="email";
property name="telephone";
property name="uuid";
property name="password";
}

1 个答案:

答案 0 :(得分:3)

好的,我已经弄清楚了......

事实证明“成员”是Hibernate中的一个(半)保留字:https://forum.hibernate.org/viewtopic.php?f=1&t=1005886&start=0

将对象和表名更改为“sitemember”解决了问题。

我猜想如果在底层HQL查询中“SELECT FROM成员”后面有一个WHERE子句,它可以正常工作;但是如果你只有基本的entityload(“member”)那么它就没有这个WHERE子句。

我想知道是否还有其他名字需要避开?

感谢你的帮助,亨利!