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条)

报告相同问题?

悬赏问题

  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入