orm - CF9 ORM 用对象填充实体

标签 orm coldfusion

我正在将 Model-Glue/Coldspring 用于新应用程序,我想我会将 CF9 ORM 加入其中。

我现在遇到的唯一问题是用对象填充实体。下面的代码或多或少地验证了只能存在一个用户名。还有一些其他逻辑没有显示。

我的第一个想法是使用这样的东西:

var实体=entityload('UserAccount',{UserName=arguments.UserAccount.getUserName()},"true")

entity = argument.UserAccount;

然而这并没有按照我预期的方式工作。是否可以用对象填充实体,或者我是否需要使用 setter ?

最佳答案

不确定这是否是您要找的。如果你有...

component persistent="true" entityName="Foo" 
{
  property a;
  property b;
}

您可以在第二个参数中传递一个结构来初始化实体(我相信是在 CF9.0.1 中添加的)

EntityNew("Foo", {a="1",b="2"});

要使用另一个对象填充 Foo,您可以使用 Memento 模式,并为您的对象实现一个 GetMemento() 函数,该函数返回其所有属性的结构。

EntityNew("Foo", bar.getMemento());

但是,CF 不会调用您的自定义 setter !如果您想使用 setter 来设置它们,您可以在 init() 构造函数中添加对 setter 的调用,或者使用您选择的 MVC 框架来填充 bean。在 Model-Glue 中,它是 makeEventBean()

更新:或者...这是黑客...

EntityNew("Foo", DeserializeJSON(SerializeJSON(valueObject)));

使用此功能需要您自担风险。 JSON 可能会对您的数字和"is"、“否”、“真”、“假”字符串做出奇怪的事情。 :)

关于orm - CF9 ORM 用对象填充实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6127717/

相关文章:

javascript - 在 GET 中发送 & 号

mysql - 查询中的 Coldfusion MySQL 查询

javascript - 如何将 JavaScript 和 CSS 文件放入浏览器缓存中?

java - ColdFusion 无法在带有对象的 Linux 服务器上执行 ObjectLoad

java - 如何开始编写代码覆盖工具?

Ruby - 使用 Mechanize::File 响应而不保存到磁盘

python - 切片后订购 Django QuerySet

python - 在 SQLAlchemy 中按名称建模

php - Doctrine:将模型值设置为数组

java - JPA/Hibernate 中的单独表与额外列