hibernate复合主键

tom_jie 2008-06-09 02:32:10
小弟的一个表有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>
...全文
456 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwikimo 2009-04-23
  • 打赏
  • 举报
回复
建议不要里使用复合主键,维护一起比较困难。
然月枕流君 2009-04-23
  • 打赏
  • 举报
回复
年代也太久远了.....
Freedom5820823 2009-04-23
  • 打赏
  • 举报
回复
不好意思发错了
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():
Freedom5820823 2009-04-23
  • 打赏
  • 举报
回复
我现在碰到了一个表中的双主键问题,当向表中插入数据时,出现org.hibernate.PropertyNotFoundException: Could not find a getter for id in class com.kjs.ww.domain.QwWarnE错误,搞了一天都没搞出来。请各位多指教。谢谢!!!
SDMRauquin 2008-06-30
  • 打赏
  • 举报
回复
userid用自增长。作为主键,自然是唯一的。

username设置为唯一的,但是唯一却不要求一定是主键的。是业务上的需求的
bojianyu 2008-06-30
  • 打赏
  • 举报
回复
主键建议使用uuid
ll2138 2008-06-10
  • 打赏
  • 举报
回复
那我也弱弱的问一下,自增长就不唯一了?
fosjos 2008-06-09
  • 打赏
  • 举报
回复
userid用自增长,username数据库设为唯一键
SDMRauquin 2008-06-09
  • 打赏
  • 举报
回复
弱弱的问问,自增的ID作为主键就好了,为什么还要把username作为主键。而且还是复合主键?

没有很额外的要求,hibernate还是推荐用一个无意的子段作为单一主键就好了
sunyujia 2008-06-09
  • 打赏
  • 举报
回复
那有把USERID和USERNAME 搞成联合主键的.
用USERID当主键就行了

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧