问题描述:

    针对这个问题,发表一下我的观点。emp表和dept表使用hibernate关联查询时报的错,使用的是非注解形式,和其他一样。他们各自有entity,各自有一个hbm.xml文件,emp表这边配置多对一,dept表这边在set或者list中配置一对多。

consol报错截图如下:

代码片段:

  部门entity

public class Dept {
private Set<Emp> emps = new HashSet<Emp>();
set/get方法...
}

  部门hbm.xml

<hibernate-mapping package="com.cissst.it.dept.entity">
<class name="Dept" table="DEPT">
<id name="deptno" column="DEPTNO">
<generator class="native"></generator>
</id>
<property name="dname" column="DNAME"></property>
<set name="emps" inverse="true">
<key column="deptno"></key>
<one-to-many class="com.cissst.it.emp.entity.Emp"/>
</set>
</class>
</hibernate-mapping>

  员工entity

public class Emp {
//所属部门
private Dept dept;
set/get方法...
}

  员工.hbm.xml

<hibernate-mapping package="com.cissst.it.emp.entity">
<class name="Emp" table="EMP">
<id name="empno" column="EMPNO">
<generator class="native"></generator>
</id>
<property name="ename" column="ENAME"></property>
<property name="job" column="JOB"></property>
<many-to-one name="dept" class="com.cissst.it.dept.entity.Dept"/>
</class>
</hibernate-mapping>

执行报错的方法:

Session session = SessionUtil.openSession();
Dept dept = session.get(Dept.class, 10);
System.out.println(dept);

问题分析:

    根据错误提示,估计是两个实体类关系重复定义了,于是我复制了emp表和dept,复制后得到emp1和dept1,然后对emp1和dept1设置了主键,没有设置外键,结果运行正常。这说明数据库中的外键定义了一次2个表关系   和  hbm定义了一次表关系重复定义了。

解决思路:

我在之前做过的审计项目中,数据库中有些表也是仅仅设置了主键,他们之间的关系也只是在注解中体现了。如有问题,烦请斧正;

ORA-02275: 此表中已经存在这样的引用约束条件的更多相关文章

  1. IOS FMDB 获取数据库表和表中的数据

    ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容. 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了.在网上有很多 ...

  2. sql 删除表中的重复记录

    嗯,遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢.哼. 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) sel ...

  3. mysql向表中某字段后追加一段字符串:

    mysql向表中某字段后追加一段字符串:update table_name set field=CONCAT(field,'',str) mysql 向表中某字段前加字符串update table_n ...

  4. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  5. excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)

    将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...

  6. **SQL某一表中重复某一字段重复记录查询与处理

    sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)> ...

  7. 在一个SQL Server表中的多个列找出最大值

    在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..# ...

  8. 删除Mysql数据表中多余的重复记录的sql语句

    数据表 sniper_tb 中存在主键 id,字段url,现需要在url字段上添加 unique,但由于url存在重复记录,导致添加失败. 如何删除表中多余的url重复记录,仅保持一条? 思路一 将 ...

  9. 删除数据表中除id外其他字段相同的冗余信息

    删除一个信息表中除id外其他字段都相同的冗余信息,如下 id name addr 1 a b 2 a b 3 b c 删除这个表中的冗余信息 即应该是 id name addr 1 a b 3 b c ...

随机推荐

  1. SQLyog 字体设置

    新公司连接数据库的工具是SQLyog,我以前使用的一直是Navicat,抱着多学个工具也不亏的想法我也安装了试下,但是SQLyog那紧凑的字体对于近视200度的我来说看着着实难受,在询问了公司前辈之后 ...

  2. 03.v-cloak、v-v-text、v-html、v-bind、v-on

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Maven 的 settings.xml 配置中的mirror节点

    maven2的setting.xml大家都知道,里面有个mirrors节点,用来配置镜像URL. mirrors可以配置多个mirror,每个mirror有id,name,url,mirrorOf属性 ...

  4. erlang 笔记(06/03/02)

    1 .同时打开的端口数量限制(Open ports) erlang:system_info(port_limit)查询 可以通过环境变量ERL_MAX_PORTS修改,或者配置erlang启动参数(标 ...

  5. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...

  6. vue 安装插件Refusing to install package with name '???'

    今天想练习使用下vux框架,安装时报错 查了下,创建项目时描述都是一样的,去package.json把name改成其它就得了

  7. ORA错误总结

    ORA-12560 协议适配器错误 可能是以下原因: 1:服务没有开启(oracle的服务,oraclehome92TNSlistener) 2:数据库实例没有开启(oracleserviceORCL ...

  8. 【Sql】经典sql语句

    参考网页:https://www.cnblogs.com/qixuejia/p/3637735.html 1./**查询课程1比课程2,成绩高的学生学号1.分析这些元素都在一个表里,但是上下两条记录, ...

  9. python 爬虫 记录

    python3 爬虫需要安装:requests,beautifulsoup4,html5lib 带有中文的需要这样写,要不然就会出现乱码 html = response.content.decode( ...

  10. 32 C++常见错误集锦

    1 下列程序中,K的值为:6 enum { a,b=5,c,d=4,e }k; K=c; 分析:enum中,首元素不赋值的话,默认为0:后一个元素不赋值的话比前一个元素大1. 2  程序运行正常. # ...