`
ericslegend
  • 浏览: 86522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Merge,FetchType,多对一关系的删除

    博客分类:
  • Java
JPA 
阅读更多

1.当一个实体存在,要建立另一个实体,那个实体把这个实体作为其一属性,则应用merge方法加到数据库中,用persist会出错

2.在用JPA进行注释时,如果一个实体里要映射多个集合实体时,我们不能把两个集合的的FetchType设置为EAGER,此时只能设置为LAZY,否则会报:cannot simultaneously fetch multiple bags。或者我们也可以借助:@IndexColumn

3.多对一关系的删除
public boolean removeContactPerson(int cid)
 {
  try
  {
   /*Query q = em.createQuery("select cper from ContactPerson cper where cper.CID =:cid_param")
      .setParameter("cid_param", cid);
   //q.executeUpdate();
   ContactPerson cper = (ContactPerson)q.getSingleResult();
   em.remove(cper);
   return true;*/
   
   Query q = em.createQuery("delete from ContactPerson cper where cper.CID =:cid_param")
   .setParameter("cid_param", cid);
   q.executeUpdate();
   
   return true;
   
   
   
   
   /*ContactPerson cper  = em.find(ContactPerson.class, cid);
   System.out.print("remove" + cid);
   em.remove(cper);
   return true;*/
  }
  catch(Exception e)
  {
   return false;
  }
 }

分享到:
评论

相关推荐

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

    要在一对多关系中实现延迟加载,我们需要在`@OneToMany`注解上添加`fetch = FetchType.LAZY`。这告诉JPA应该在需要时才去加载关联的实体集合,而不是在加载父实体时一并加载。然而,需要注意的是,由于Java的反射...

    jpa--9.单向多对一

    - 多对一关系中,如果删除"一"端的实体(Department),那么所有引用它的"多"端实体(Employee)的外键也将变为NULL,除非配置了级联操作。 通过这种方式,JPA允许我们在Java应用程序中轻松地处理数据库中的单向多...

    hibernate 一对多,两个实例项目

    在实际开发中,我们需要熟练掌握如何在Java代码中添加、删除和更新一对多关系的实体。例如,通过`session.save()`保存新的实体,`session.merge()`更新已存在的实体,`session.remove()`删除实体。对于集合类型的...

    Hibernate一对一关联映射(注解)

    一对一关系中,User有一个IdCard属性,而IdCard也有一个User属性。 ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // 一对一关联,IdCard...

    14_JPA详解_JPA中的多对多双向关联的各项关系操作.zip

    在JPA中,多对多(Many-to-Many)关联是一种常见的关系类型,允许一个实体实例与多个其他实体实例相互关联。在本教程中,我们将深入探讨JPA中的多对多双向关联及其各项操作。 ### 1. 多对多关联基础 在关系型...

    10_JPA详解_JPA中的一对多双向关联与级联操作.zip

    3. 一对多关联通常需要设置`fetch = FetchType.LAZY`,以避免加载过多数据(懒加载)。 总结,本资料包主要探讨了JPA中一对多双向关联的配置以及级联操作的使用,这些都是在实际开发中处理复杂对象关系时不可或缺的...

    hibernate组件之间的关联

    在 Hibernate 中,组件之间的关联是实现对象模型与数据库表之间映射的关键部分,它包括了一对一、一对多、多对一、多对多等多种关联类型。本篇文章将深入探讨 Hibernate 组件之间的关联机制及其应用。 **一对一关联...

    JPA中的一对多双向关联与级联操作

    一对多关联是数据库设计中的常见关系类型,一个实体可以拥有多个相关联的实体实例。在JPA中,这种关系可以通过在实体类中定义`@OneToMany`注解来实现。这个注解告诉JPA一个实体(例如,一个用户)可以有多个相关的...

    更新关联表的值

    这篇博文可能详细解释了如何在使用Hibernate时处理一对多、多对一或一对一等关联关系的更新操作。下面将深入探讨这个主题。 首先,我们来理解关联表的概念。在数据库设计中,当两个或更多表之间存在关系时,我们...

    Hibernate实体关联速查表

    与一对一相反,多对一表示多个实体实例关联到一个实例。使用`@ManyToOne`注解,同样可以设置`fetch`和`cascade`属性。例如: ```java @Entity public class Order { @ManyToOne @JoinColumn(name = "user_id") ...

    hibernate常见异常针对于jpa

    1. **多对一关系:** `@ManyToOne`定义了多对一关系,不会产生中间表,可以在多的一方通过`@JoinColumn`定义外键名。 2. **一对多关系:** `@OneToMany`定义了一对多关系,如果没有特别配置,则会自动生成中间表;...

    app-jpa-relationships

    多对一关系是与一对一关系相反的情况,即多个实体实例可以关联到单个实体。例如,多个订单可以关联到同一个客户。`@ManyToOne`注解用于定义这种关系,同样可以使用`@JoinColumn`定义关联字段。 4. 多对多关系...

    Hibernate中文手册(3.2)

    关联映射允许对象间建立关系,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。外键维护可以通过`mappedBy`属性指定,决定是哪一方负责关联关系的管理。 十、延迟加载...

    JPA实例 经典

    - **多对一(ManyToOne)**: 多个实体对应一个实体,如订单与客户。 - **多对多(ManyToMany)**: 多个实体可以关联多个实体,如学生与课程。 5. **懒加载与即时加载** - **懒加载(Lazy Loading)**: 关联数据...

    Hibernate_Annotation关联映射

    对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的insertable和updatabel设置为false。这种方案不会得到什么明显的优化,而且还会增加一些附加的UPDATE...

    jpa实现数据库操作

    - **多对多(ManyToMany)**: 多个实体对应多个实体实例,通常需要一个关联表来维护关系。 6. **懒加载与即时加载(Eager vs Lazy Loading)** - 懒加载允许关联的对象在需要时才加载,提高性能。 - 即时加载会...

    hibernate annotations 中文文档

    - `@ManyToOne`, `@OneToOne`: 多对一和一对一的关系映射,用于表示两个实体之间的关联。 - `@OneToMany`, `@ManyToMany`: 一对多和多对多的关系映射,通常需要使用`@JoinTable`来定义联接表。 - `@JoinColumn`: ...

    hibernate_annotation

    3.1 OneToMany、ManyToOne:表示一对多和多对一的关系,如用户与订单的关系: ```java // 在User类中 @OneToMany(mappedBy = "user") private List<Order> orders; // 在Order类中 @ManyToOne @JoinColumn(name = ...

    hibernate入门简单实例

    15. **实体关系映射策略**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)、多对多(ManyToMany)等,理解这些关系并正确配置是使用Hibernate的关键。 通过这个"hibernate_first"实例,你可以...

    hibernate帮助文档

    Hibernate 支持一对一、一对多、多对一、多对多的关联映射。关联可以在实体类间建立,通过注解或XML配置文件定义。例如,`@OneToOne`、`@OneToMany`、`@ManyToOne`和`@ManyToMany`。 九、延迟加载与懒加载 延迟加载...

Global site tag (gtag.js) - Google Analytics