1、共3个表对应3个实体类。Supplier(供应商表)、SupplierType(供应商类别表) 、SupplierEvaluate(供应商评价表)
2、3个表的关联关系:Supplier 与 SupplierType 一对一关系,Supplier表里有一个SupplierType的外键(typeId),Supplier 只是通过外键typeId获取供应商类别的名称,不对其做其他操作;与 SupplierEvaluate一对多关系,一个供应商对应多条评价,多条评价对应一个供应商。
3、注解配置
Supplier.java
private Long typeId; (供应商类别Id)
private Set<TSupplierEvaluate> supplierEvaluates;(供应商评价)
private TSupplierType supplierType;(供应商类别)
其他属性略。。。
我的注解写在get方法上:
@Column(name ="typeId")
public Long getTypeId(){
return type;
}
一对多关系
@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY, mappedBy = "supplier")
public Set<TSupplierEvaluate> getSupplierEvaluates() {
return supplierEvaluates;
}
同时在SupplierEvaluate.java里配置多对一关系
在SupplierEvaluate类里supplier的外键不用写。(我的是supplier_id)
private TSupplier supplier;
@ManyToOne(cascade = {CascadeType.MERGE},optional = false, fetch=FetchType.LAZY)
@JoinColumn(name = "supplier_id")
public TSupplier getSupplier() {
return supplier;
}
@JoinColumn(name = "supplier_id") 里的supplier_id与之对应的类的属性不要写。标蓝色的字体的名称要一致。
这要就可以关联了。如果要关联保存要把supplier对象放入SupplierEvaluate里及 supplierEvaluate.setSupplier(supplier); 然后把set放入 supplier里。save(supplier);
在Supplier.java里配置 一对一关系
@OneToOne (cascade = {CascadeType.PERSIST, CascadeType.MERGE},fetch = FetchType.LAZY)
@JoinColumn(name="typeId", insertable = false, updatable = false)
public SupplierType getSupplierType() {
return supplierType;
}
易出现should be mapped with insert="false" update="false" 错误,加上insertable = false, updatable = false 就可以,我的这个 一对一只是为了查找name,不关联操作。
@OneToMany 还有一下属性:
@Where(clause="status = 1") 添加新的搜索条件
@OrderBy(value ="weight desc") 排序方法。
4、jsp页面显示
${supplier.supplierType.name }
以上仅供记录与参考,有不正确的地方望纠正,谢谢。
相关推荐
本文将深入探讨Hibernate注解的相关知识,包括基本概念、常用注解以及它们在实际开发中的应用。 一、Hibernate注解基础 1.1 Hibernate注解简介 Hibernate注解是将ORM元数据嵌入到Java类和属性的声明中,以声明式的...
总结来说,"Hibernate自身关联一对多实例(树形结构)"涉及到Java对象与数据库表之间的映射,以及如何在代码中建立和管理这种关联。正确理解和应用这些知识,可以帮助开发者高效地处理层次型数据,提高开发效率。对于...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中操作数据库,而无需直接编写SQL语句。这篇文档将对Hibernate的关键概念、配置、实体类、映射文件、会话和事务等方面进行详尽的...
总结,"Hibernate基于连接表的一对多单向关联"涉及到的主要知识点包括:数据库设计的一对多关系、Hibernate的实体映射、单向关联的配置、以及如何在Java代码中操作和查询这种关联。理解并熟练应用这些知识点,对于...
### Hibernate知识点总结 #### 一、Hibernate概述及入门 **1. HelloWorld** - **目的**:通过一个简单的示例,让初学者快速上手Hibernate,理解其基本工作流程。 - **步骤**: 1. 创建Java项目,命名为`...
总结来说,理解并能正确使用Hibernate中的多对多双向关联是Java开发中的重要技能,涉及到实体设计、映射配置、数据操作和性能优化等多个方面。通过学习提供的博客和相关代码示例,开发者可以深入掌握这一主题,并将...
总结,Hibernate的一对一唯一外键关联为开发者提供了一种方便的方式来处理两个实体之间的紧密联系。无论是在单向还是双向关联中,理解其配置、映射以及性能影响都是至关重要的。通过熟练掌握这些知识,我们能够更好...
【hibernate 重点知识】 一、hibernate 简介 Hibernate 是一个流行的 Java 应用程序框架,主要用于简化对象关系映射(ORM)的过程。它允许开发者使用面向对象的方式来操作数据库,通过自动映射数据库表为 Java ...
【标题】:“Hibernate4的一些总结” 【描述】:这篇博客主要涵盖了Hibernate4框架在实际开发中的应用和理解,作者通过个人实践对Hibernate4的核心特性和使用技巧进行了深度解析。 【标签】:“源码”和“工具”这...
总结,理解并熟练掌握Hibernate的一对多和多对一关联映射对于Java开发者来说是至关重要的。它不仅简化了数据库操作,也使得代码更加面向对象,易于理解和维护。在实际工作中,结合源码阅读和相关工具,我们可以更好...
**Hibernate核心知识点详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据库事务。在本文中,我们将深入探讨Hibernate的关键概念、...
**hibernate学习总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。在Java世界中,Hibernate 提供了一种在对象模型和关系数据库之间进行转换的机制,使得开发...
### HQL连接查询和注解使用总结 ...以上总结了HQL连接查询的不同类型及其语法特点,以及如何在Hibernate中利用注解配置持久化类及其关联关系。这些知识对于理解和使用Hibernate进行高效数据库操作至关重要。
总结起来,Hibernate的多对多关联映射是通过中间表来实现的,通过`@ManyToMany`注解进行配置,并通过`@JoinTable`来指定中间表的细节。理解和熟练掌握这一特性,对于高效地管理数据库中的复杂关联关系至关重要。在...
5. **实体类与数据库表**: 在Hibernate中,我们创建Java实体类来表示数据库表,通过注解或XML映射文件将实体类与数据库表关联。 6. **JDBC连接Oracle**: 需要引入Oracle的JDBC驱动,例如ojdbc.jar,并在Hibernate...