`
yesjavame
  • 浏览: 699843 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

JPA中关系印射注意事项

JPA 
阅读更多
一对一不用多说.
一对多:
一A对多B.单向: (tb_a,tb_b)
代码省略必须的但和主题的内容如@Entity等标记,Setter,Getter等
class A{
private int id;
………………..其它字段
@OneToMany(cascade = CascadeType.ALL)
private List<B> bs = new ArrayList<B>();
}
class B{
private int id;
…………………其它字段
}
只在A这一端加上@OneToMany就行了.B这一端不用任何标记,这时JPA一定要求另外一个辅助表.表名为:tb_a_tb_b即两表用_连结,其中保存两个表的ID关系.字段名称为:
a_id,B在A中引用的字段+”_ID”;即 bs_id; 如果是自动生成表,这个关联表也会自动生成.
在单向一对多时的操作时也是只需单向设置即可,ID对应关系由关联表自动维护:
B b = new B();
//不用b.setId(xxx);
A a = new A();
a.getBs().add(b);
em.persist(a);
A对多B.双向(tb_a,tb_b)
如果不想用中间关联表,只能用双向关系:
class A{
private int id;
………………..其它字段
@OneToMany(cascade = CascadeType.ALL,mappedBy="a")
private List<B> bs = new ArrayList<B>();
}
class B{
private int id;
…………………其它字段
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "a_id")
private A a;
}
此时tb_b中需a_id字段.
操作时需要双向设置,否则a_id为null,关系丢失:
B b = new B();
//其它set.
A a = new A();
b.setA(a);
a.getBs().add(b);
em.persist(a);
这样才能正确保存完整的数据格式
B A.双向(tb_a,tb_b)
当然,你可以从B中利用外健默认单向关联ManyToOne,但这样的单向关系在绝大多数场合没有意义.
如一个班级没有获取学生的集合,却在学生实体中获取班级,虽然可能,但没有多少人不把它做成双向关系的:
这里需要在tb_b中设置a_id为外键关联到tb_a中的id.
class A{
private int id;
………………..其它字
}
class B{
private int id;
…………………其它字段
@ManyToOne(cascade = CascadeType.ALL) //默认多对一,只此一行设置
private A a;
}
而且这里的操作应该是:
A a = new A();
Bb = new B();
b.setA(a);
em.persist(b);
分享到:
评论

相关推荐

    JPA映射关系详解javax JPA JPA映射关系 JPA映射

    Java Persistence API (JPA) 是一种用于管理关系型数据库中的数据的标准 Java 技术。JPA 提供了一种对象关系映射 (ORM) 方法来处理数据库,允许开发者以面向对象的方式操作数据库。本文将详细介绍 JPA 中四种常见的...

    JPA映射关系,多种映射关系的图解

    JPA映射关系,多种映射关系的图解,适合EJB初学者,对JPA映射关系的了解.

    JPA常用关系实现例子

    Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的对象持久化。它是ORM(对象关系映射)框架的一种实现,允许开发者使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。JPA通过...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    在 Spring Data JPA 1.4.3 版本中,主要包含以下关键知识点: 1. **Repository Abstraction**:这是 Spring Data JPA 的核心特性之一。它提供了一种声明式的数据访问接口,允许开发者定义自定义的查询方法,而不...

    11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护

    本教程“11_传智播客JPA详解_JPA中的一对多延迟加载与关系维护”聚焦于JPA在处理一对多关系时的延迟加载机制以及如何有效地维护这些关系。 一、JPA一对多关系 在数据库中,一对多关系意味着一个实体可以与多个其他...

    jpa例子jpajpa

    5. **事务管理(Transaction)**: 在JPA中,事务是通过`EntityManager`进行管理的。你可以使用`begin()`, `commit()`和`rollback()`方法来控制事务的边界。 6. **懒加载(Lazy Loading)与即时加载(Eager Loading...

    JPA中文解释,JPA的API

    在JPA中,注解如`@Entity`用于标记实体类,`@Table`指定对应的数据库表,`@Id`定义主键,`@Column`定义字段属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理关联关系等。针对Oracle,可能还会涉及...

    JPA和Hibernate的关系

    **Java Persistence API (JPA)** 是一种用于管理Java应用中的关系型数据库的标准API。它的主要目的是为了提供一套统一的、可移植的对象-关系映射(ORM)解决方案。JPA允许开发者使用JDK 5.0注解或XML文件来描述实体...

    jpa1.0中文手册

    JPA是一个Java社区规范(Java Community Process JSR 220),用于在Java EE和Java SE环境中管理对象和关系数据库之间的映射,以及管理数据库中的数据持久化操作。JPA为对象/关系映射(ORM)提供了标准化的方法,可以...

    Spring Data JPA中文文档[1.4.3].zip

    Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...

    jpa映射关系详解[参照].pdf

    jpa映射关系详解[参照].pdf

    14_传智播客JPA详解_JPA中的多对多双向关联的各项关系操作

    在JPA中,多对多(Many-to-Many)关联是一种常见的关系类型,适用于描述两个实体之间复杂的关系。本教程将深入探讨JPA中多对多双向关联的各个方面及其操作。 在数据库中,多对多关联意味着一个实体可以与多个其他...

    11_JPA详解_JPA中的一对多延迟加载与关系维护.zip

    本资料主要探讨的是JPA中的一对多关系以及延迟加载机制,这两部分是JPA使用中的关键概念。 **一对多关系** 在关系数据库中,一对多关系是最常见的一种关联类型。例如,一个部门可以有多名员工,而每个员工只能属于...

    JPA 实现继承关系

    本篇文章将深入探讨如何在JPA中实现继承关系,这对于构建可扩展且结构化的数据模型至关重要。 在Java中,继承是面向对象编程的一个核心概念,允许一个类(子类)继承另一个类(父类)的属性和方法。在JPA中,继承...

    JPA_官方文档_中文版

    实体是JPA中的核心概念,代表了要持久化的Java对象。实体需满足特定条件,如使用`@Entity`注解标记,具备无参构造函数,且类和方法不可声明为final。此外,实体对象中的持久化属性应为非public访问级别,并通过...

    spring data jpa中文文档

    在Spring Data JPA中,数据模型通常由@Entity注解的类表示,如`@Entity`的User类。使用`@Table`注解指定对应的数据库表,`@Id`标识主键,`@GeneratedValue`处理主键生成策略。 4. **Query方法命名规则** Spring ...

    jpa的实体映射关系7种

    在Java Persistence API (JPA) 中,实体映射关系是数据库关系模型与Java对象模型之间的桥梁,用于在ORM(对象关系映射)框架下管理数据。JPA 提供了多种映射关系,使得开发者能够方便地处理不同类型的关联。下面我们...

    JPA关联关系

    在JPA中,关联关系是实现对象与数据库表之间映射的关键部分,它允许我们将数据库中的表与Java类之间的关系映射出来。本文将深入探讨JPA中的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一...

Global site tag (gtag.js) - Google Analytics