`

hibernate---映射文件,关系构建错误

阅读更多
严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: com.company.cosystem.domain.Manager column: dept_id (should be mapped with insert="false" update="false")


有个Employee,它的子类Manager,还有一个Department:
最开始认为Employee和Department存在N-1的关系,Department和Manger存在1-1的关系,Employee持有一个department字段,Department持有一个manager,manager是一个特殊的employee,无法创建相应数据表,因为彼此要求以对方的主键为外键。只好把Department的manager去掉,保留了一个String类型的managerName

Employee和Department的关联关系设置
<!-- 映射和Department的关联关系 -->
		<many-to-one name="dept" column="dept_id" class="Department"
			lazy="false" not-null="true" />

Manger和Department是1-1关联(么考虑副经理什么的),认为以下代码会覆盖父类关联关系,想当然了,出现标红错误提示,因为这里又映射了一行dept_id,与上面的行dept_id重复
<subclass name="Manager" discriminator-value="2">
			<!-- 映射和Department的关联关系 -->
			<many-to-one name="dept" column="dept_id" unique="true"
				class="Department" lazy="false" not-null="true" />



删除第二段代码,为了获取部门经理,可判断emp_type=discriminator-value="经理的设置值"
<discriminator column="emp_type" type="int" />
分享到:
评论

相关推荐

    hibernate-release-5.3.2.Final

    Hibernate ORM,作为Java领域最著名的对象关系映射框架之一,自诞生以来就深受开发者喜爱。2018年7月5日,Hibernate发布了其最新版本——5.3.2.Final,带来了诸多改进和新特性,为开发者提供了更为高效、稳定的持久...

    hibernate-release-4.2.4核心jar包

    在Hibernate中,dom4j被用来解析Hibernate的配置文件,如.hibernate.cfg.xml,以及映射文件,如.hbm.xml,以获取元数据信息。 `hibernate-jpa-2.0-api-1.0.1.Final.jar`包含Java Persistence API(JPA)的规范,这...

    hibernate-distribution-3.6.0.Final-dist

    Hibernate是一个广泛使用的Java开发工具,它属于对象关系映射(ORM)框架,旨在简化数据库操作,使开发者能够用面向对象的方式来处理数据库交互,而无需过多关注底层的SQL语句。 ### ORM框架的概念 对象关系映射...

    hibernate-release-5.0.11.Final

    Hibernate,作为Java领域中最著名的对象关系映射(ORM)框架之一,为开发者提供了便捷的数据库操作方式,极大地简化了Java应用中的数据访问层代码。在5.0.11.Final版本中,Hibernate引入了一系列的改进和优化,使其...

    hibernate-release-5.0.7.Final-所有jar包

    Hibernate,作为Java领域中最流行的ORM(对象关系映射)框架之一,为开发者提供了便捷的数据持久化方案。本篇将聚焦于Hibernate 5.0.7.Final版本中的核心组件及依赖,通过解析提供的jar包列表,深入理解其架构和功能...

    hibernate-distribution-3.6.10.Final基本包

    - 映射文件(.hbm.xml):每个实体类对应的XML文件,定义了数据库表结构和字段映射。 五、实体类与数据库表的映射 - 注解方式:通过在Java类和属性上添加特定注解(如@Entity、@Table、@Column等),实现对象到表的...

    hibernate-release-5.0.7.Final.zip官方

    Hibernate 是一款开源的对象关系映射(Object-Relational Mapping,简称 ORM)框架,它为 Java 应用程序提供了对数据库存储的高效管理和访问能力。Hibernate 5.0.7.Final 版本作为 Hibernate 5.0 系列中的一个稳定版...

    hibernate-search-orm-5.0.0.Alpha1.zip

    1. Hibernate ORM:了解如何使用Hibernate进行对象关系映射,包括实体类定义、配置映射文件、Session和Transaction管理等。 2. Hibernate Search ORM:学习如何集成和配置Hibernate Search,创建索引,执行全文搜索...

    hibernate-distribution-3.6.8.Final-dist

    Hibernate,作为一个开源的对象关系映射(ORM)框架,极大地简化了Java应用程序与数据库之间的交互。在Hibernate 3.6.8.Final这个版本中,我们看到了一系列增强的功能和优化,使其成为企业级应用开发的首选工具之一...

    hibernate-release-5.0.6.Final

    Hibernate,作为Java领域中的一款主流对象关系映射(ORM)框架,极大地简化了数据库操作。5.0.6.Final是Hibernate的一个稳定版本,包含了众多改进和优化。在这个版本中,我们将深入探讨其核心特性和重要变化,帮助...

    hibernate-jpa-2.1-api 1.0.0.Final API

    Hibernate是Java领域中最受欢迎的对象关系映射(ORM)框架之一,而JPA则是Java平台上的标准 ORM 规范,允许开发者以面向对象的方式处理数据库操作。"API"代表应用程序编程接口,通常是一系列预定义的函数、类和接口...

    hibernate-jpa

    Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。而Java Persistence API (JPA) 是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。Hibernate是JPA...

    hibernate-4.2.3.required

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。"hibernate-4.2.3.required"这个标题可能指的是Hibernate 4.2.3版本的一个特定...

    Myeclipse生成Hibernate映射文件

    而MyEclipse作为一款强大的Java集成开发环境,提供了对Hibernate的良好支持,包括自动生成Hibernate映射文件的功能。本文将详细介绍如何在MyEclipse中创建和使用Hibernate映射文件。 首先,理解Hibernate映射文件...

    hibernate-release-4.2.19.Final

    Hibernate,作为Java领域中的一个著名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而非繁琐的数据处理。本次我们将深入探讨Hibernate 4.2.19.Final版本,这一稳定且广泛使用...

    ahibernate-ex

    【标签】"ahibernate" 明确了这个项目与Hibernate框架密切相关,Hibernate是Java领域广泛应用的对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,而无需过多关注底层SQL语法。AHibernate作为...

    hibernate-release-5.2.0.Final

    Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了在Java应用中管理关系数据库的数据和对象的便捷方式。通过Hibernate,开发者可以将数据库操作转换为对Java对象的操作,简化了数据库编程。 二...

    hibernate-distribution-3.3.2.GA-dist.zip

    Hibernate 是一个对象关系映射(ORM)工具,它允许开发者使用面向对象的方式操作数据库,避免了SQL语言的直接编写,降低了数据库访问的复杂性。3.3.2 GA 版本是Hibernate的一个稳定版本,提供了许多改进和优化。 2...

    hibernate5.3.0jar包下载

    同时,还需要配置相应的XML或Java配置文件,指定数据库连接信息、实体类、映射文件等。此外,为了编写查询,可以使用HQL(Hibernate Query Language)或者JPQL(Java Persistence Query Language),也可以利用...

Global site tag (gtag.js) - Google Analytics