【发布时间】:2015-10-15 20:00:55
【问题描述】:
我对 ColdFusion ORM 有一个奇怪的问题,它试图在创建 EntityNew() 和 EntitySave() 之后将值插入我的标识列。这是特定的属性定义:
property name='StaffAdminID'
fieldType='id'
type='numeric'
ormType='integer'
generator='identity'
setter=false
insert=false
update=false;
下面是创建新记录的代码:
transaction {
LOCAL.staffAdmin = EntityNew('StaffAdmins');
LOCAL.staffAdmin.setYear( REQUEST.user.getYear() );
LOCAL.staffAdmin.setStaff( LOCAL.staff );
LOCAL.staffAdmin.setAdmin( LOCAL.admin );
LOCAL.staffAdmin.setAddedOn( Now() );
LOCAL.staffAdmin.setAddedBy( SESSION.username );
LOCAL.staffAdmin.setAddedID( REQUEST.user.getStaffID() );
EntitySave( LOCAL.staffAdmin );
}
这里是休眠日志:
2015-07-24 21:49:20,108 [ajp-bio-8014-exec-6] Hibernate DEBUG org.hibernate.SQL -
insert
into
StaffAdmins
(AddedOn, AddedBy, AddedID, YearID, StaffEnrollmentID, AdminEnrollmentID, StaffAdminID, StaffID, AdminID)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?)
这会导致以下错误:
coldfusion.orm.hibernate.HibernateSessionException:
[Macromedia][SQLServer JDBC Driver][SQLServer]
Cannot insert explicit value for identity column in
table 'StaffAdmins' when IDENTITY_INSERT is set to OFF
如您所见,它试图插入StaffAdminID 列,我假设它是null。我不确定发生了什么,我什至尝试在组件上设置dynamicInsert=true。任何想法都会很棒!谢谢
【问题讨论】:
-
此时,我使用
QueryExecute()至少获取一条记录到数据库中,然后从result.generatedKey中检索插入的记录。 (叹气)它很老套,但很有效......
标签: hibernate orm coldfusion coldfusion-11