`
xzcgeorge
  • 浏览: 32036 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

JPA one to many

 
阅读更多

1. one to many:

1.1 db tables:
CREATE TABLE customer
(
   customer_id   bigint NOT NULL,
   adresse       VARCHAR (255) NOT NULL,
   city          VARCHAR (255) NOT NULL,
   name          VARCHAR (255) NOT NULL,
   phone         VARCHAR (255) NOT NULL,
   state         VARCHAR (255) NOT NULL,
   tax_id        INTEGER NOT NULL,
   zip           VARCHAR (255) NOT NULL,
   PRIMARY KEY (customer_id)
);


CREATE TABLE customer_order
(
   order_id        bigint NOT NULL,
   date_placed     DATE NOT NULL,
   date_promised   DATE,
   status          VARCHAR (255) NOT NULL,
   terms           VARCHAR (255) NOT NULL,
   customer_id     bigint,
   PRIMARY KEY (order_id)
);

ALTER TABLE customer_order ADD CONSTRAINT FK86DB8BAD595591FB FOREIGN KEY (customer_id) REFERENCES customer


1.2  Customer class ( one side)
   @OneToMany(mappedBy = "customer",cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<CustomerOrder> CustomerOrders;


1.3  CustomerOrder ( many side )

    @ManyToOne(fetch=FetchType.EAGER)  //fetch=FetchType.LAZY or EAGER
    @JoinColumn(name="customer_id")
    //@Fetch(FetchMode.JOIN)
    private Customer customer;

Keys:  a.   cascade -> ALL:   save customer will also save orders of it.
       b.   fetch = FetchType.LAZY: lazy loading, if you want the order loaded with customer, you have
           to access it like this:

               public Customer getCustomerAndOrdersById(Long id) {

                   Customer customer = customerDao.getById(id);
                   for (CustomerOrder c : customer.getCustomerOrders())
                       ;    // no n+1 issue.
               }

       c. If fetch = FetchType.EAGER: no problem. It is alway loaded with customer loading.

1.4  If you remove the  ,cascade = CascadeType.ALL, you have to save both customer and his orders
     manually, and load them separately.
分享到:
评论

相关推荐

    one-to-many-jpa-example

    One2Many JPA OrderBy 与 InMemory 排序示例 订购方式 用于按顺序创建实体的卷曲通过示例 curl -iX POST ...

    jpa to many

    这包括了一对多(One-to-Many)和多对多(Many-to-Many)关系。这两种关系在现实世界的业务场景中非常常见,例如一个学生可以注册多个课程,或者一个订单可以包含多个商品。 **一对多关系(One-to-Many)**: 在一...

    spring-jpa-hibernate-one-to-many-example:使用MySql中的Spring JPA的Hibernate中的OneToMany映射示例

    使用MySql示例的带有Hibernate的Spring Data JPA 该项目使用MySql Example描述了带有Spring Data JPA和Hibernate的Spring Boot示例。 描述 该项目显示了存储在MySql数据库中的用户列表。 使用以下端点,可以实现...

    JPA

    JPA提供了多种方式来映射实体之间的关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-Many)。 - **一对一(One-to-One)**:这种关系在两个实体之间建立一对一的...

    hibernate many to one

    在Java的持久化框架Hibernate中,"Many-to-One"关系是一种常见的关联映射类型,它表示一个实体(类)可以与多个其他实体实例相关联。在这个主题中,我们将深入探讨Hibernate如何处理这种关系,以及如何在实际编程中...

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

    本文将详细介绍 JPA 中四种常见的映射关系:一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)。 #### 1. OneToOne 关系建立 一对一关系是指两个实体之间的关系,...

    Pro JPA 2 Mastering the Java Persistence API free down

    JPA2.0 加入了大量必须的 ORM 映射增强特性,包括:支持通过使用 @ElementCollection 标注来增强 collections, maps 和 lists( 这里不是指实体之间的关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (JPA1.0...

    jpa最基本最全配置的jar包

    8. **多对一(One-to-Many)、一对多(Many-to-One)、一对一(One-to-One)和多对多(Many-to-Many)关系**: 这些是常见的关联关系,可以通过@OneToMany、@ManyToOne、@OneToOne和@ManyToMany注解进行配置。...

    jpa 关联映射jpa 关联映射jpa 关联映射

    本文将深入探讨 JPA 中的一对一 (One-to-One)、一对多 (One-to-Many)、多对一 (Many-to-One) 和多对多 (Many-to-Many) 的关联映射。 #### 二、实体关系映射概述 在领域模型中,实体间的关系可以是: - **一对一 ...

    jpa学习笔记 介绍了jpa中state的概念和应用

    在处理关联关系时,如Company与Employee的一对多(one-to-many)和多对一(many-to-one)关系,需要特别注意如何管理和维护这些关系。例如,当删除Company时,可能需要同时删除所有关联的Employee。这可以通过级联...

    Apress.Pro.JPA.2.2nd.Edition.Oct.2013

    2. **实体映射**:讲解如何使用注解或XML来定义实体类,将Java对象与数据库表进行映射,包括主键(Primary Key)、关系映射(One-to-One, One-to-Many, Many-to-One, Many-to-Many)等。 3. **查询语言**:探讨JPQL...

    jpa的学习资料

    3. **关系映射(Relationship Mapping)**: JPA支持多种关系映射,如一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-Many)。使用`@OneToOne`, `@OneToMany`, `@ManyToOne`,...

    学习使用 Spring Data JPA 对 MySQL 进行操作.zip

    8. **多表关联**:理解 One-to-One、One-to-Many、Many-to-One、Many-to-Many 等关联关系,以及如何使用 `@OneToOne`、`@OneToMany`、`@ManyToOne`、`@ManyToMany` 注解来配置。 9. **懒加载与急加载**:了解 JPA ...

    hb-04-one-to-many-uni

    综上所述,"hb-04-one-to-many-uni"项目很可能是为了展示如何在Java应用中使用JPA和Hibernate处理一对一和一对多的关联关系,通过代码示例帮助开发者理解和实践这些概念。通过查看并分析`hb-04-one-to-many-uni-main...

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    《深入理解Hibernate:第三解——Many-to-One关系映射实战》 在Java世界里,ORM(Object-Relational Mapping)框架的出现极大地简化了数据库与Java对象之间的交互,而Hibernate作为其中的佼佼者,更是备受开发者青睐...

    jpa--11.双向一多

    在实际的业务场景中,经常会出现两个实体之间存在一对多(One-to-Many)的关系,比如一个用户可以有多个订单,或者一个部门有多个员工。而在JPA中,这种关系可以被设置为单向或双向。本篇文章将深入探讨双向一对多的...

    hibernate-one-to-many-uni

    【标题】"hibernate-one-to-many-uni" 指的是在Hibernate框架下实现的一对多单向关联关系。Hibernate是Java开发中常用的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是数据库交互。在这个...

    play-one-to-many-relationship

    本主题主要关注的是如何在Play框架中处理"1对多"(One-to-Many)的关系,这是一种常见的数据库关系模型,通常用于描述一个实体与多个相关实体之间的联系。 在给定的场景中,"产品目录"可能是一个包含各种产品的...

    hibernate-jpa

    9. **多对一(One-to-Many)、一对多(Many-to-One)、多对多(Many-to-Many)关系** Hibernate JPA提供了处理复杂对象关系的能力,如通过@OneToMany、@ManyToOne和@ManyToMany注解来定义不同类型的关联关系。 10....

    春天数据jpa一对多

    "春天数据JPA一对多"这个标题涉及到的是Spring Data JPA 中的一种关联关系——一对一(One-to-One)、一对多(One-to-Many)或多对一(Many-to-One)关系的实现,特别是关注于一对多的关系配置。在这个场景下,我们...

Global site tag (gtag.js) - Google Analytics