swrer 2008-08-03 12:41
浏览 510
已采纳

hibernate string型为主键问题

数据库为mysql,主键设为string型的fileName,然后在hbm.xml中设置
到session.save()时出现下列异常:

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.demo.model.UserFiles
at org.hibernate.id.Assigned.generate(Assigned.java:33)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
(下略)
基本上就是存储时主键fileName这个字段没有默认值,无法保存;看来是fileName没有被识别出来,但是程序中我都明明.SetFileName().
还有hibernate操作int型主键时就没问题,对string型主键不知应该如何处理?
[b]问题补充:[/b]
to ag_sherry
那是不是数据表还必须设置一个id字段?hibernate会自动为你生成一个32位的无重复的id,不理解,感觉string还不是主键,反倒这个无重复的id是主键了

  • 写回答

3条回答 默认 最新

  • hglxr 2008-08-04 13:55
    关注


    有了这个设置后,hibernate不会自动为为你生成id

    在save前,你必须手动给id赋值。

    主键设置为string,你可以考虑uuid,hibernate会自动为你生成一个32位的无重复的id,这样设置就可以了:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元