<property name="CanAward" type="Boolean" column="CanAward" not-null="true" insert="true" update="true" />
语句中的 insert="true" update="true"是指对象的添加,更新操作产生的HQL语句中是否包含该字段,true就包含,false不包含,没有写时默认就是true
所以当映射文件出现这种情况时:
<property name="RoleID" type="Int32" column="RoleID" insert="true" />
<many-to-one name="Role" class="DBLayer.MAP.Accredit.Role,DBLayer" not-null="true" fetch="select" insert="true" update="true" unique="true" >
<column name="RoleID"/>
</many-to-one>
当SaveObject时产生下面错误
DBLayer.DBL.Accredit.RoleFuncDBL_Test.AddRoleFunction : Spring.Data.UncategorizedAdoException : Hibernate operation: could not insert: [DBLayer.MAP.Accredit.RoleFunction][SQL: INSERT INTO AC_Role_Function_Test (RoleID, FunctionID, CanAward, RoleID) VALUES (?, ?, ?, ?)]; uncategorized DataException for SQL [INSERT INTO AC_Role_Function_Test (RoleID, FunctionID, CanAward, RoleID) VALUES (?, ?, ?, ?)]; ErrorCode [<no error code>]; 在结果列列表中多次出现列名 'RoleID'。
----> System.Data.SqlClient.SqlException : 在结果列列表中多次出现列名 'RoleID'。
本文探讨了在使用Hibernate框架进行数据库操作时遇到的关于重复列名的问题,并详细解析了insert=true和update=true属性的作用,以及如何避免在SQL生成过程中出现重复列名导致的错误。

1万+

被折叠的 条评论
为什么被折叠?



