Hen*_*nry 27 coldfusion orm coldfusion-9
您在使用CF-ORM(Hibernate)的ColdFusion 9中观察到的一些内容应该注意什么?
Hen*_*nry 50
实体init()方法必须没有必需的参数,否则EntityNew()其他CF-ORM操作将会中断.您可能希望使用Factory来创建实体,并在那里强制执行所需的参数.
ORMReload()有ormsettings.dbcreate = "drop create"可能不会删除所有的表你. CF9累积热修复1稍微改进了一点,但您可能希望自己删除DB中的表.
type="date"(默认使用ormtype="date"),只会存储日期而不是时间.如果你想要坚持时间,请使用ormtype="timestamp"
type="string" 将默认为 varchar(255)
type="numeric"将默认为float,而不是int.如果需要,使用ormtype ="int".
if fieldtype="id"和generator设置为某个生成器,ormtype默认为int.
type="string" length="10"会使用varchar(10),而不是char(10)
ormtype="char" length="10"将使用char(1)仍然.使用sqltype="char(10)",如果你真的需要.
type="boolean"使用tinyint默认情况下使用sqltype="bit",如果你需要.
应该使用inverse=true双向关系,通常是"一对多"方面.
千万不要用inverse="true"在单向关系!这种关系可能根本就没有了!
如果使用MS-SQL,则一对一属性设置为Null的实体不能超过1个,因为Null被视为索引中的唯一值.让列不为空的好主意.(或使用linktable)
EntityLoad("entity", 1, true)工作,但EntityLoadByPK("entity", 1)更清洁!
EntityLoad(),EntityLoadByPK()和ORMExecuteQuerywith unique=true,null如果找不到实体,将返回.用于isNull()在使用返回值之前进行检查.
ORMExecuteQuery 如果默认没有找到实体,则返回空数组.
不要忘记singularname在"一对多"/"多对多"中使用属性来获得更好看的生成函数(例如addDog(Dog dog)vs.addDogs(Dog dogs))
<cfdump>将加载所有延迟加载属性.或者,您可以尝试<cfdump var="#entityToQuery([entity])#">或设置top = 1以有效地转储.
存储在Session范围中的实体将与其Hibernate会话范围断开连接,并且不会加载延迟加载属性.要恢复休眠会话范围,请使用entityLoadByExample()或entitySave(entity).
cascade="all-delete-orphan"通常对"一对多"或"多对多"关系更有意义.Hibernate设置null然后删除,因此请确保该列可以为空.测试并查看这是否是您的愿望行为.
required="true"无论何时设置notnull="true",对于使用CFCExplorer浏览CFC的其他人来说都更具可读性
EntityNew('Y')new com.X.Y根据一些Adobe工程师的说法,稍微提高实体的效率会稍微提高一些效率.
由于未修复的Hibernate错误,与继承实体的关系有时可能会中断,请将其linktable用作解决方法.
structKeyColumn 不能是目标实体的PK.
双向多对多不能使用struct
向struct添加新实体structKeyColumn时,CF会持久保存父实体时被忽略.
如果直接访问一对多/多对多数组或结构,请确保在使用前存在相应的数组/结构.生成的addX()/ hasX()/ removeX()可以随时使用.
at postInsert(),实体hibernate会话不再可用,因此postInsert()的设置属性将被静默忽略,或者Session is Closed异常将被抛出.
在实体加载entityLoad()或来自DB的HQL之后,即使EntitySave()未调用,更改也将自动保留.
CF-ORM事务的实现方式是它启动一个新的会话,并在它完成时关闭.
在事件内部(即preLoad()/ postInsert()),分配给变量可能会抛出关于类型的Java异常.使用JavaCast()来解决这个bug.
UPDATE
<cfquery dbtype="hql">,更容易做cfqueryparam,调试输出实际上显示了绑定值.添加建议:
| 归档时间: |
|
| 查看次数: |
9987 次 |
| 最近记录: |