【问题标题】:Lucee ORM - "Error Message" Repeated column in mapping for entityLucee ORM - 实体映射中的“错误消息”重复列
【发布时间】:2017-03-18 17:59:26
【问题描述】:

实体映射中的重复列:用户列:userid(应使用 insert="false" update="false" 进行映射)

这是我收到的错误消息。我有一个自引用的用户表(客户)。这样我就可以知道哪个用户在何时创建了哪个。

这是我的实体。

component  table="customer" output="false" accessors="true" persistent="true" {
  property name="userid"      column="userid"       ormtype="int"   fieldtype="id"    generator="identity";
  property name="firstname"   column="firstname"    ormtype="string";
  property name="lastname"    column="lastname"     ormtype="string";
  property name="email"       column="email"        ormtype="string";
  property name="active"      column="active"       type="boolean"  ormtype="boolean";
  property name="createdOn"   column="createdOn"    ormtype="date";
  property name="modifiedOn"  column="modifiedOn"   ormtype="date";
  property name="createdBy"   fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true";
  property name="modifiedBy"  fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true";
}

我已经添加了错误消息告诉我添加到每个属性的内容,因此它们现在看起来像:

property name="createdBy"   fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true" insert="false" update="false";
property name="modifiedBy"  fieldtype="one-to-one"  cfc="user"    fkcolumn="userid" inverse="true" insert="false" update="false";

解决方案: 我添加了 inversejoincolumn="userid" 并且它起作用了。见下文

property name="createdBy"     column="createdBy"      fieldtype="one-to-one"  cfc="user"    inversejoincolumn="userid";
property name="modifiedBy"    column="modifiedBy"     fieldtype="one-to-one"  cfc="user"    inversejoincolumn="userid";

【问题讨论】:

  • 那么在进行更改并致电OrmReload() 后,错误仍然存​​在吗?
  • 我需要能够保存/更新这些列(createdBy 和 modifiedBy),但是是的,如果我将该代码添加到所有 userid 列,包括主键,它就可以工作,但是因为我需要保存数据,从技术上讲它不起作用。
  • 您不需要将其添加到 identiy userid 属性中。但无论如何,您似乎需要为您的 2 个自引用关系创建特定的键。
  • 这是修复它的属性 name="modifiedBy" column="modifiedBy" fieldtype="one-to-one" cfc="user" inversejoincolumn="userid";我将 inversejoinclumn 添加到 modifiedBy 和 createdBy 中。谢谢大家的建议。

标签: orm lucee


【解决方案1】:

在您的客户表中创建单独的列来记录执行创建和修改的用户的 ID。你可以叫他们creatoridmodifierid

然后将createdBymodifiedBy 关系中的fkcolumn 分别从userid 更改为creatoridmodifierid

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-22
    • 2013-02-11
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多