`

JPA 注解以及pojo转为表 (二)

阅读更多

7.一对多映射关系


 有T_One和T_Many两个表,他们是一对多的关系,注解范例如下


 主Pojo

 01.@Entity   
 02.@Table(name = "T_ONE")   
 03.public class One implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "ONE_ID", nullable = false)   
 07.private String oneId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10.@OneToMany(cascade = CascadeType.ALL, mappedBy = "oneId")//指向多的那方的pojo的关联外键字段   


 11.private Collection<Many> manyCollection;  

 

 子Pojo

 01.@Entity   
 02.@Table(name = "T_MANY")   
 03.public class Many implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "MANY_ID", nullable = false)   
 07.private String manyId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10. 
 11.@JoinColumn(name = "ONE_ID", referencedColumnName = "ONE_ID")//设置对应数据表的列名和引用的数据表的列名   
 12.@ManyToOne//设置在“一方”pojo的外键字段上   
 13.private One oneId; 

 

8.多对多映射关系


貌似多对多关系不需要设置级联,以前用hibernate的时候着实为多对多的级联头疼了一阵子,JPA的多对多还需要实际的尝试一下才能有所体会。
估计JPA的多对多也是可以转换成两个一对多的。

 

 第一个Pojo
 01.@Entity   
 02.@Table(name = "T_MANYA")   
 03.public class ManyA implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "MANYA_ID", nullable = false)   
 07.private String manyaId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10.@ManyToMany   
 11.@JoinTable(name = "TMANY1_TMANY2", joinColumns = {@JoinColumn(name = "MANYA_ID", referencedColumnName = "MANYA_ID")}, inverseJoinColumns = {@JoinColumn(name = "MANYB_ID", referencedColumnName = "MANYB_ID")})   
 12.private Collection<ManyB> manybIdCollection;  

 

 第二个Pojo
 01.@Entity   
 02.@Table(name = "T_MANYB")   
 03.public class ManyB implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "MANYB_ID", nullable = false)   
 07.private String manybId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10.@ManyToMany(mappedBy = "manybIdCollection")   
 11.private Collection<ManyA> manyaIdCollection;  

 

9.一对一映射关系


 主Pojo

 01.@Entity   
 02.@Table(name = "T_ONEA")   
 03.public class OneA implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "ONEA_ID", nullable = false)   
 07.private String oneaId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10.@OneToOne(cascade = CascadeType.ALL, mappedBy = "oneA")//主Pojo这方的设置比较简单,只要设置好级联和映射到从Pojo的外键就可以了。  

  
 11.private OneB oneB;  


 从Pojo

 01.@Entity   
 02.@Table(name = "T_ONEB")   
 03.public class OneB implements Serializable {   
 04.private static final long serialVersionUID = 1L;   
 05.@Id   
 06.@Column(name = "ONEA_ID", nullable = false)   
 07.private String oneaId;   
 08.@Column(name = "DESCRIPTION")   
 09.private String description;   
 10.@JoinColumn(name = "ONEA_ID", referencedColumnName = "ONEA_ID", insertable = false, updatable = false)//设置从方指向主方的关联外键,这个ONEA_ID其实是表T_ONEA的主键   
 11.@OneToOne   
 12.private OneA oneA;  

 

10 大字段

 

 01.@Lob //对应Blob字段类型   
 02.@Column(name = "PHOTO")   
 03.private Serializable photo;   
 04.@Lob //对应Clob字段类型   
 05.@Column(name = "DESCRIPTION")   
 06.private String description; 

 

11.瞬时字段
不需要与数据库映射的字段,在保存的时候不需要保存倒数据库

 

 01.@Transient   
 02.private int tempValue;   
 03.
 04.public int getTempValue(){   
 05.get tempValue;   
 06.}   
 07.
 08.public void setTempValue(int value){   
 09.this.tempValue = value;   
 10.}

分享到:
评论
2 楼 freedomhtml 2015-11-07  
  详细,清楚,完整
1 楼 ٩(•̮̮̃•̃)۶ 2012-05-03  
@Transient
private int tempValue;

public int getTempValue() {
	get tempValue;
}

public void setTempValue(int value) {
	this.tempValue = value;
}

相关推荐

    JPA的POJO生成

    在JPA中,POJO被用作实体类,这些实体类映射到数据库表,每个字段对应表中的列。 **1. JPA实体定义**: 创建一个JPA实体,你需要使用`@Entity`注解标记类,并且通常包含一个`@Id`注解的字段,表示主键。例如: ```...

    JPA注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    JPA注解总结大全!!!!

    ### JPA注解总结大全 Java Persistence API (JPA) 是一种用于管理关系数据库中的对象/关系映射的标准。本文将详细介绍与 JPA 相关的一些常用注解及其使用方法,帮助开发者更好地理解和掌握 JPA 的核心功能。 #### ...

    JPA 注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...

    JPA注解实现联合主键

    ### JPA注解实现联合主键 在关系型数据库中,单个字段作为主键的情况较为常见,但在某些场景下,我们需要使用多个字段共同作为主键来唯一标识表中的每一条记录,这就是所谓的“联合主键”。而在Java持久化框架...

    jpa注解详解

    JPA注解详解 JPA(Java Persistence API)是Java企业版5(Java EE 5)的一部分,提供了一个对象关系映射方法,使得开发者可以使用声明方式定义如何将Java对象映射到关系数据库表。在JPA中,批注是一种使用元数据...

    java程序使用JPA注解详解.doc

    JPA 使用注解来定义实体类与数据库表之间的映射关系,本文将详细介绍 JPA 注解的使用。 一、@Table 注解 @Table 注解用于定义实体类对应的数据库表的名称、目录和模式等属性。元数据属性说明: * name:表名,...

    JPA注解参考文档.txt

    而使用JPA,则可以将任何普通的Java POJO指定为JPA实体,即可以通过JPA持久性提供程序的服务将其非持久字段持久保存到关系数据库(既可以在Java EE EJB容器内部,也可以在独立的Java SE应用程序中的EJB容器外部)。...

    SpringMVC+JPA 注解开发 maven

    本项目提供了完整的配置代码,并有详细注释,非常适合初学者了解和学习SpringMVC+JPA的注解开发方式,以及如何结合Maven进行项目管理。通过实践这个项目,你可以深入理解Web应用开发的流程,掌握这些技术的使用。

    JPA注解 和hibernate 建表

    二、JPA注解 JPA提供了一些注解来描述实体 Bean 的持久化信息,例如: * @Entity:标注该类是一个实体Bean * @Table:标注该实体Bean对应的数据库表 * @Column:标注该实体Bean对应的数据库表中的列 * @Id:标注该...

    spring注解+spring data jpa文档+JPA文档.rar

    JPA通过`EntityManager`和`EntityTransaction`接口与数据库交互,`@Entity`注解标记实体类,`@Table`指定对应数据库表,`@Id`定义主键,`@GeneratedValue`用于自动生成主键值。JPA支持多种数据类型转换,以及复杂的...

    Hibernate之JPA注解

    Hibernate之JPA注解

    Hibernate使用JPA注解代码

    当我们将Hibernate与JPA的注解结合使用时,可以极大地简化数据库操作的代码。然而,在实际开发中,我们可能会遇到各种问题,如标题中提到的"persistence.Table.indexes()[Ljavax/persistence/Index;"异常。这个异常...

    java程序使用JPA注解详解

    JPA(Java Persistence API)提供了多种注解来定义实体类与数据库表之间的映射关系。 @Table 注解 @Table 注解用于定义实体类对应的数据库表的 metadata。其主要属性包括: * name:表名,默认为类名 * catalog:...

    JPA注解@Access实例

    Java Persistence API (JPA) 是Java中用于对象关系映射(ORM)的标准框架,它允许开发人员将Java类与数据库表进行映射,从而简化数据操作。在JPA中,`@Access`注解是用于指定实体属性访问策略的关键工具,它决定了...

    Toplink_JPA注解参考

    在实际开发中,JPA已经发展了许多新特性,比如Spring Data JPA的Repository抽象,以及更现代的ORM框架如Hibernate,它们在注解使用和功能上可能会有所不同,但基础概念是相通的。学习并熟练掌握这些注解,将有助于...

    jpa注解doc文档

    Jpa注解的各种jpa注释详解

    JPA注解的解释和说明.pdf

    JPA(Java Persistence API)是Java平台标准版的一部分,用于在Java应用程序中...通过以上注解的详细介绍,可以更好地理解和运用JPA以及SpringBoot框架,从而在开发中快速梳理思路并实现数据持久化及相关业务逻辑处理。

Global site tag (gtag.js) - Google Analytics