我正在创建一个新实体,使用 entitySave() 保存它,然后希望在页面请求完成之前获取该实体的 ID。
当我在 ID 上运行 getter 时,它返回“0”,但是当我检查时,数据库已经生成了 ID。
这是我的模型中的属性声明:
property name="id" fieldtype="id" generator="identity" column="member_id";
我创建并保存实体,然后尝试访问新的实体 ID:
newProfile = entityNew("member");
newProfile.setMemento(args); // a helper method to populate the entity
entitySave(newProfile);
//ormFlush() // have tried this, but makes no difference
//ormReload(newProfile) // have tried this, but no difference
//I now want to access the ID of the new profile, but it is returning '0'
newProfileID = newProfile.getID();
也试过这个没有成功
transaction {
entitySave(newProfile);
}
writeDump(newProfile);
关于我可能在这里遗漏的任何指示?
非常感谢!
**更新* * 它看起来像是列映射的问题。如果我将属性名称更改为“id”以外的任何名称,它就可以正常工作。仅当属性名称为“id”时,该属性才不会获取生成的值:
此配置的 getID() 值为 0:
property name="id" fieldtype="id" generator="identity" column="member_id";
将属性名称更改为“id”以外的名称会返回数据库中 member_id 的值。
property name="myid" fieldtype="id" generator="identity" column="member_id";