我正在为一个新的应用程序使用模型胶/Coldspring,我想我应该把CF9对象关系映射加入其中。
我现在遇到的唯一问题是用对象填充实体。下面的代码或多或少验证了只有一个用户名。还有一些其他逻辑没有显示。
我的第一个想法是使用这样的东西:
var entity = entityload('UserAccount' ,{UserName=arguments.UserAccount.getUserName()},"true")
entity = arguments.UserAccount;
然而,这并不像我预期的那样工作。是否可以使用对象填充实体,或者我是否需要使用setter?
发布于 2011-05-26 01:29:08
不确定这是不是你要找的。如果你有..。
component persistent="true" entityName="Foo"
{
property a;
property b;
}你可以在第二个参数中传递一个struct来初始化实体(我相信是在CF9.0.1中添加的)
EntityNew("Foo", {a="1",b="2"});要用另一个对象填充Foo,您可以使用Memento模式,并对您的对象实现一个GetMemento()函数,该函数返回一个包含其所有属性的结构。
EntityNew("Foo", bar.getMemento());但是,CF不会调用您的自定义setter!如果您想使用setter设置它们,您可以在init()构造函数中添加对setter的调用,或者使用您选择的MVC框架来填充bean。在模型粘合中,它是makeEventBean()。
更新:或...这是哈克。
EntityNew("Foo", DeserializeJSON(SerializeJSON(valueObject)));使用它的风险自负。JSON可能会对你的数字和'yes','no','true','false‘字符串做一些奇怪的事情。:)
https://stackoverflow.com/questions/6127717
复制相似问题