问题描述
现在有一个问题就是在hibernate多对多中间表,一般都是两个外键,例如:用户表主键:userid角色表主键:roleid中间表字段为两个外键:userid,roleid作为联合主键。但是现在我如果想在中间表加一个字段为单独的主键,即设置一个字段id作为主键.那么采用hibernate向中间表插入数据的时候,就会出现问题,即设置一个字段id作为主键.那么采用hibernate向中间表插入数据的时候,就会出现问题,即主键id字段插入为空,会报错误Causedby:java.sql.SQLIntegrityConstraintViolationException:ORA-01400:无法将NULL插入("RE_USER_ROLE"."ID")这个问题有谁知道呀?
解决方案
解决方案二:
现在都吃饭去了吗?
解决方案三:
或者在数据库创建一个索引,id引用索引插入。或者在反向生成表的时候,可以选择id自动增序填写
解决方案四:
你的中间表是不存在hibernate映射中的可以建个序列和触发器。也可以在中间表中不需要序列值啊!
解决方案五:
可以这样子,写一个实体类Temp,包含用户表主键和角色表主键,另外再增加一个主键,然后配置映射文件生成表Temp。然后把用户的userid和角色的id插入到这个表中(按Temp的主键插入)。如果这样子做的话就麻烦了
时间: 2024-10-02 01:17:37