做了快两年的EMM,今天zy结束了.
昨天同事遇到了一个问题,搞了一下午,后来我和他们一起研究,搞了好几个小时,最终发现
了原因,在此记录一下。
category 分类表 1 ===>M app_info 表
app_info 中 category_id 是 外键
使用Hibernate3.6.8 注解做的对象关系映射
查询app_info的时候需要将分类关联查出来,于是这样写了语句
String hql = "from AppInfo a join fetch a.category where a.id = 1"
Query query = this.getSession().createQuery();
执行查询后报 categrory_0.category_id 找不到
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CATEGORY_ID", nullable = false,referencedColumnName="ID")
public Category getTbEmmCategory() {
return this.Category;
}
详细的学习了一下joincolumn的属性
JoinColumn
如果在entity class的field上定义了关系(one2one或one2many等),我们通过JoinColumn来定义关系
的属性。JoinColumn的大部分属性和Column类似。
元数据属性说明:
name:当前表的列名称
referencedColumnName:该列指向列的列名(建表时该列作为外键列指向关系另一端的指定列)
unique: 是否唯一
nullable: 是否允许为空
insertable: 是否允许插入
updatable: 是否允许更新
columnDefinition: 定义建表时创建此列的DDL
secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字
最后发现category 实体类中定义了一个属性category_id,删掉后就OK了
分享到:
相关推荐
在JavaEE开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化...通过分析这些代码,你将能更好地掌握Hibernate一对多关系的配置和使用。同时,也可以尝试修改配置或业务逻辑,以加深理解和应用。
例如,Class实体和Student实体的一对多关系: ```java @Entity public class Class { @OneToMany(mappedBy = "class") private List<Student> students; } @Entity public class Student { @ManyToOne ...
在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,特别是在处理数据库中的表结构时。在标准的关系型数据库设计中,一对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联。例如,一个...
本案例主要探讨的是Hibernate中的一对多关系映射,这是一种常见的对象关系映射(ORM)配置,用于表示一个实体与多个其他实体之间的关联。 在传统的数据库设计中,一对多关系是指一个表(父表)中的记录可以与另一个...
在这个"hibernate一对多关系"的资源中,我们主要探讨的是Hibernate如何处理一个实体类与多个实体类之间的关联关系。 在数据库设计中,一对多关系是非常常见的一种关系类型,比如一个部门可以有多个员工,一个学生...
描述中的链接指向了一篇由“fangguanhong”在iteye博客上发表的文章,虽然具体内容没有提供,但我们可以根据标题推测该文章可能详细讲解了一个具体的Hibernate一对多关系的实现步骤和示例代码。 在Java的Hibernate...
本文将详细解析"hibernate一对多映射"的概念、配置及其实现过程,以帮助理解并掌握这一核心特性。 首先,我们要明白在关系型数据库中,"一对多"关系意味着一个实体(比如一个部门)可以有多个相关实体(如部门下的...
在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...
这个压缩包文件“HibernateORM”很可能包含了关于如何在实际项目中设置和使用Hibernate一对多双向关联的示例代码、配置文件或者详细教程。通过学习这些材料,开发者能够深入理解如何在Java应用中利用Hibernate来处理...
本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...
- **映射配置**:在`CUSTOMER.hbm.xml`映射文件中,可以看到`<set>`元素用于定义一对多关系,其中`inverse="true"`属性表示反向操作由另一方负责,`lazy="true"`则表示延迟加载,`cascade="all"`意味着当父对象发生...
在Java的持久化框架Hibernate中,多对一(ManyToOne)关联关系是一种常见的对象关系映射(ORM)场景。这种关系通常出现在一个实体类拥有多条与另一个实体类相关的记录,而另一个实体类可能只有一条对应的记录。例如...
本实例将聚焦于Hibernate中的一对多关系,这是一种常见的关联类型,尤其是在处理具有层次结构的数据时。双向一对多关系意味着一个实体可以拥有多个相关联的实体,同时每个相关联的实体也可以回指到原始实体。 **...
本篇主要讨论的是Hibernate中的一对多关系映射,以及如何在实际操作中进行配置和使用。 一对多关系指的是一个实体可以与多个其他实体相关联。例如,在用户系统中,一个用户可以有多个订单,这就是典型的一对多关系...
在数据库设计中,一对多关系是最常见的一种关联,比如一个学生可以有多个课程。在Hibernate中,我们可以使用`@OneToMany`注解来表示这种关系。通常,一方会有一个集合属性来存储多方的对象,而多方对象则有一个引用...
在Java的持久化框架Hibernate中,一对多关系是数据库中常见的关联类型,它表示一个实体可以与多个其他实体相关联。在这个"hibernate 一对多,两个实例项目"中,我们将深入探讨如何在实际开发中应用这种关系,并通过...
在这个“hibernate实例(一对多,多对一)”的主题中,我们将深入探讨两种重要的关联关系:一对一(One-to-One)和一对多(One-to-Many)。 **一对一关联(One-to-One)** 在一对一关联中,一个实体与另一个实体之间...
例如,@OneToOne 可用于表示一对一关系,@ManyToOne 和 @OneToMany 用于多对一和一对多关系。 4. **外键约束:** 在数据库层面,这些关联通常通过外键实现。Hibernate允许在映射文件或注解中指定外键的生成策略。 ...
本文将以一个实例为依托,深入解析如何使用注解来设置一对多关系以及多对一关系的映射。 在Hibernate中,处理一对多关系主要使用`@OneToMany`和`@ManyToOne`注解。一个简单的例子通常包括两个实体类:一个“父”类...