hibernate 外键 插入数据问题

问题描述

<hibernate-mapping> <class name="com.pojo.HrBranchInfo" table="hr_branch_info" schema="public"> <id name="hbiNId" type="java.lang.Integer"> <column name="hbi_n_id" /> <generator class="sequence" /> </id> <many-to-one name="hrEmpBase" class="com.pojo.HrEmpBase" fetch="select"> <column name="hbi_n_operator" /> </many-to-one> <many-to-one name="hrBranchInfo" class="com.pojo.HrBranchInfo" fetch="select"> <column name="hbi_n_prior" not-null="false" /> </many-to-one> <property name="hbiVName" type="java.lang.String"> <column name="hbi_v_name" length="40" not-null="true" /> </property> <property name="hbiCState" type="java.lang.String"> <column name="hbi_c_state" length="1" not-null="true" /> </property> <property name="hbiVDesc" type="java.lang.String"> <column name="hbi_v_desc" length="200" /> </property> <property name="hbiCTime" type="java.lang.String"> <column name="hbi_c_time" length="14" /> </property> <property name="hbiNSortindex" type="java.lang.String"> <column name="hbi_n_sortindex" length="10" /> </property> <property name="hbiVTemp1" type="java.lang.String"> <column name="hbi_v_temp1" length="100" /> </property> <property name="hbiVTemp2" type="java.lang.String"> <column name="hbi_v_temp2" length="100" /> </property> <property name="hbiVTemp3" type="java.lang.String"> <column name="hbi_v_temp3" length="100" /> </property> <set name="hrEmpBases" inverse="true"> <key> <column name="hbi_n_id" not-null="true" /> </key> <one-to-many class="com.pojo.HrEmpBase" /> </set> <set name="hrRelationBranduties" inverse="true"> <key> <column name="hbi_n_id" not-null="true" /> </key> <one-to-many class="com.pojo.HrRelationBranduty" /> </set> <set name="hrBranchInfos" inverse="true"> <key> <column name="hbi_n_prior" not-null="true" /> </key> <one-to-many class="com.pojo.HrBranchInfo" /> </set> </class></hibernate-mapping> 这是一个数据表的配置文件,在我插入数据的时候提示我“錯誤: 欄位"hbinprior"不存在”,请大家帮忙看看。

解决方案

<many-to-one name="hrBranchInfo" class="com.pojo.HrBranchInfo" fetch="select">你把 fetch="select",这样只有查询的时候才关联吧,把这个属性去掉试试

时间: 2024-08-04 08:22:26

hibernate 外键 插入数据问题的相关文章

关于hibernate 一对多插入数据的问题

问题描述 关于hibernate 一对多插入数据的问题 现在出现了一个问题, 主表和副表通过1对多的关系关联配置,所有的配置都完成了. 在做关联处理时,副表的查询是成功的,但是在对副表进行插入数据的处理时, 数据不能被插入,从打印的日志来看,副表的insert语句都没有被执行, 请问有没有人遇到过这种问题?是什么原因造成的?谢谢 解决方案 Hibernate一对多增删改查 解决方案二: 估计是hibernate配置时cascade的问题,如果是注解的看http://blog.csdn.net/z

如何在EF 5.0 中做带外键的数据新增

问题描述 如何在EF 5.0 中做带外键的数据新增 各位大牛好,我有一个EF的问题: 我有一张主表,包含2个子表,是用外键关联的,但是其中一张子表又是另一个子表的子表,也是用外键关联的,请问在EF中如何新增这3张表的记录.

Hibernate外键许为NULL,JSP如何取值。

问题描述 前提:  1,Hibernate设置:      一个主表A,其中有一个字段外键关联一个基础信息表B,容许为NULL.延迟加载.  2,DAO      直接查询主表A,返回主表A的值对象.  3,系统使用框架:      SSH问题:  在JSP中,直接使用:${主表A.信息表B.外键字段的名称} 时,出错.请问如何解决. 解决方案 恩,在<%@page%>里面加isELIgnored='false'.先让jstl能用.而jstl遇到错误只是不显示而已,不会报错的.这就可以符合你的

hibernate 外键问题

问题描述 有外键关系的几个表,要做类似这样的查询:select hbiNId from hrBranchInfo where hbi_n_prior=? and hbiVname=? and hbiCState=1;问题可能出现在红色标注的字段.下面是代码,大家看看问题出在了哪. 报错:org.hibernate.hql.ast.QuerySyntaxException: hrBranchInfo is not mapped. [select hbiNId from hrBranchInfo w

hibernate 级联保存明细时,外键没有被赋值

问题描述 hibernate jpa 配置model,一对多的关系,保存主表时级联保存子表,子表中的主表外键为空.难道要先保存主表,然后手动去赋子表的外键?这还叫级联保存吗.求解!!!例如:public class Order extends AbstractNsSimpleModel {private static final long serialVersionUID = -3227571634593243399L;@OneToMany(cascade = CascadeType.ALL,

Java的Hibernate框架中的双向主键关联与双向外键关联_java

一.双向主键关联双向的主键关联其实是单向一对一主键关联的一种特殊情况,只不过要在关联对象的两端的映射文件中都要进行<one-to-one>的配置,另外还要在主映射的主键一端采用foreign外键关联属性. 这里同样使用Person和IdCard来讨论,一个人对应着一个唯一的身份证,而且一个身份证也唯一映射着一个人,所以这就产生了双向的关联关系,Person的主键同样也是IdCard的主键,分别是主键的同时也是外键,这种关联关系成为双向一对一映射,表现到关系模型中可如下图: 图中的两个表采用了主

关于oracle外键引用与goldengate

  一.准备知识 约束放置在表中,有以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KEY 主键约束P 唯一的标识出表的每一行,且不允许空值值,一个表只能有一个主键约束 FOREIGN KEY 外键约束R 一个表中的列引用了其它表中的列,使得存在依赖关系,可以指向引用自身的列 CHECK 条件约束C 指定该列是否满足某个条件 约束命名规则 如果不指定约束名Oracle s

MySQL使用外键实现级联删除与更新的方法_Mysql

本文实例讲述了MySQL使用外键实现级联删除与更新的方法.分享给大家供大家参考,具体如下: MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更

提高数据库查询效率的实用方法、外键关于性能

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0   3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引