hibernate 多对多 中间表主键问题?

问题描述

现在有一个问题就是在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

hibernate 多对多 中间表主键问题?的相关文章

hibernate3-Hibernate3中,有两个表,从表主键名叫“zhujian” 有一个属性叫“id”

问题描述 Hibernate3中,有两个表,从表主键名叫"zhujian" 有一个属性叫"id" Hibernate3中,有两个表,从表主键名叫"zhujian" 有一个属性叫"id" 报错如下 七月 30 16:02:56 , 602 DEBUG ErrorCounter:68 - throwQueryException() : no errors 七月 30 16:02:56 , 602 DEBUG QueryTransl

使用GUID作为数据表主键的好处

guid|数据 使用GUID作为数据表主键的好处  数据表主健通常采用以下三种方式:   1.         自动递增值. 2.         唯一名称.这个是使用自己定义的算法来生成一个唯一序列号. 3.         GUID(全局唯一标识符).  GUID与自动递增值及唯一名称比较GUID在客户端生成,由GUID的特性决定,通过GUID生成的值可能出现重复的机会几乎等于零,因此保证在插入表的时候主键值唯一. 可以方便处理分布式数据的提交,比如:分店数据向总店提交――直接将该部分数据插

EF 自关联表主键自增情况下,不能添加记录的问题,有谁解决过?

问题描述 EF 自关联表主键自增情况下,不能添加记录的问题,有谁解决过? 如题,我的系统中因为一个特定原因,需要一张自关联表(thisTable)来简化逻辑, 该表主键是自增的,结果发现无法添加记录, 错误消息:无法确定"db.thisTable"关系的主体端.添加的多个实体可能主键相同. 请问,有人解决过这个问题吗? 解决方案 自己解决了,顺便分享给大家: 在EF的设定里,自关联的表主键外键,都不能为空(为空就会破坏数据的完整性), 这在两表关联时没问题,但在自关联就有一个悖论,那就

mybatis+mysql 一表主键自增, 插入数据,怎么返回主键

问题描述 mybatis+mysql 一表主键自增, 插入数据,怎么返回主键 mybatis+mysql 一表主键自增, 插入数据,怎么返回主键.很多人说的都是返回了插入的行数 解决方案 <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id"> insert into person(name,pswd)

informix数据库表主键重复,数据插入失败。怎么解决?在线急等!!!!

问题描述 informix数据库表主键重复,数据插入失败.怎么解决?在线急等!!!! informix数据插入出现主键重复.怎么可以更好地解决这类问题? 解决方案 数据库表插入数据失败数据库表中插入重复数据的处理数据库表中插入重复数据的处理

SqlBulkCopy 目标表主键问题

问题描述 SqlBulkCopy目标表主键是自动生成的,我不想为目标表主键列赋值是否可以? 解决方案 解决方案二:无须赋值的,没有关系只需字段结构相同解决方案三:table第一列给空就行了解决方案四:可以使用:SELECT*FROMTargetTableWHERE1=2读取TableSchema,然后根据需要填充DataTable,最后提交解决方案五:DataTable里面不包括那列就可以了解决方案六:我试了没有那一列的话就不能复制到目标表里去解决方案七:把错误提示贴出来吧解决方案八:SqlBu

Hibernate多对多关联表问题

问题描述 我的项目里有门票跟景点两个类 目前设置的是多对多单向关联,即:在门票类里面设置了MANY-TO-MANY,在景点里面没有设置,生成的关联表只有门票的ID跟景点的ID两个字段属性,而且生成的表是readonly只读状态,现在问题来了,查询的时候提示我如下错误:NestedServletException: Request processing failed; nested exception is org.hibernate.ObjectNotFoundException: No row

Hibernate之关联关系映射(一对一主键映射和一对一外键映射)

1:Hibernate的关联关系映射的一对一外键映射: 1.1:第一首先引包,省略 1.2:第二创建实体类: 这里使用用户信息和身份证信息的关系,用户的主键编号既可以做身份证信息的主键又可以做身份证信息的外键,这里先做外键. 创建User.java: 用户和身份证一对一的关联关系映射       private IdCart idCart; IdCart.java: 身份证和用户,一对一的关系       private User user; 1 package com.bie.bean; 2

Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计--自动生成数据库脚本 一对一关系的小结 一些出错问题的总结   自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后