小弟的一个表有2个主键,一个是ID是DB2自动增列,一个是用户名,是业务中赋值,请问我如果配置HBM
<hibernate-mapping>
<class name="com.icsc.ordersys.bo.User" table="USER" schema="DB2ADMIN">
<composite-id name="id" class="com.icsc.ordersys.bo.UserId">
<key-property name="userid" type="java.lang.Long">
<column name="USERID" />
</key-property>
<key-property name="username" type="java.lang.String">
<column name="USERNAME" length="30" />
</key-property>
</composite-id>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="30" not-null="true" />
</property>
<property name="realname" type="java.lang.String">
<column name="REALNAME" length="10" not-null="true" />
</property>
<property name="personid" type="java.lang.String">
<column name="PERSONID" length="30" not-null="true" />
</property>
<property name="address" type="java.lang.String">
<column name="ADDRESS" length="30" not-null="true" />
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL" length="30" not-null="true" />
</property>
<property name="mobile" type="java.lang.String">
<column name="MOBILE" length="15" not-null="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="PHONE" length="15" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="SEX" length="5" not-null="true" />
</property>
<property name="brithday" type="java.lang.String">
<column name="BRITHDAY" length="10" not-null="true" />
</property>
<property name="company" type="java.lang.String">
<column name="COMPANY" length="30" not-null="true" />
</property>
<property name="memo" type="java.lang.String">
<column name="MEMO" length="10" not-null="true" />
</property>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.icsc.ordersys.bo.User" table="USER" schema="DB2ADMIN">
<composite-id name="id" class="com.icsc.ordersys.bo.UserId">
<key-property name="userid" type="java.lang.Long">
<column name="USERID" />
</key-property>
<key-property name="username" type="java.lang.String">
<column name="USERNAME" length="30" />
</key-property>
</composite-id>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="30" not-null="true" />
</property>
<property name="realname" type="java.lang.String">
<column name="REALNAME" length="10" not-null="true" />
</property>
<property name="personid" type="java.lang.String">
<column name="PERSONID" length="30" not-null="true" />
</property>
<property name="address" type="java.lang.String">
<column name="ADDRESS" length="30" not-null="true" />
</property>
<property name="email" type="java.lang.String">
<column name="EMAIL" length="30" not-null="true" />
</property>
<property name="mobile" type="java.lang.String">
<column name="MOBILE" length="15" not-null="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="PHONE" length="15" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="SEX" length="5" not-null="true" />
</property>
<property name="brithday" type="java.lang.String">
<column name="BRITHDAY" length="10" not-null="true" />
</property>
<property name="company" type="java.lang.String">
<column name="COMPANY" length="30" not-null="true" />
</property>
<property name="memo" type="java.lang.String">
<column name="MEMO" length="10" not-null="true" />
</property>
</class>
</hibernate-mapping>
用USERID当主键就行了
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():