JPA实体的常用注解

@Entity

  标注于实体类上,通常和@Table是结合使用的,代表是该类是实体类
@Table

  标注于实体类上,表示该类映射到数据库中的表,没有指定名称的话就表示与数据库中表名为该类的简单类名的表名相对应,如果是逆向生成表的话就会以简单类名作为表名

  如果指定名称,例如@Table(name="tb_user"),就表示映射到数据库中的tb_userz这个表;
@Id

  标注于属性上,通常是在get方法上,也可以在属性的声明上。

  用于表示该属性作为ID主键
@GeneratedValue

  主键生成策略,@GeneratedValue(strategy=GenerationType.AUTO)表示主键自增长由实现jpa的框架来控制,例如我们用hibernate实现的就是有hibernate来控制

  GenerationType总共有四个:

  AUTO:

  TABLE:由一个表来维护主键,这个表记录上一次生成的主键,然后+1给作为新的主键,这种方式效率比较低
  SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列
  IDENTITY:主键增长有数据来维护,可能不同数据库有不同的策略

@Column

  标注于属性上,有很多功能,例如指定长度、是否为空,列名以及对应到数据库汇中的类型等,如@Column(length,nullable,name)

  例如,我们string对应到数据库中的text就可以这样写,@Column(columnDefinition="text")

@Temporal

  指定时间类型,例如,@Temporal(TemporalType.Date)
@Enumerated(EmumType.STRING) 注解指定枚举类型

  其中,EmumTypes表示保存到数据库中是索引还是字符串

@Lob声明属性对应的数据库字段为大文本类型,可以存放大的数据(文本和字节)
@Transient不成为持久化字段及不跟数据库中的字段形成映射
@Basic(fetch=FetchType.LAZY)

  是否把数据装载到内存中延迟初始化,第一次访问的时候在加载数据,一般用在大数据存放
@Embeddable指定联合组键 和@EmbeddedId结合使用

===================================================================

以上是针对实体的注解,接下来时针对实体与实体之间关联的注解:

一对多
一般是在多的一般维护关系,也就是多的一方作为关系维护端,负责维护外键,而一的一方是不能操作外键的;
@oneToMany(cascade={CascadeType.*},fetch=FetchType.*,mappedBy="")
默认的FetchType.Lazy
mappedBy就是指关系被维护端;
多对一
@ManyToOne(cascade.CascadeType.*,optional=true|false)
@JoinColum(name="")--》维护关系(外键)
一般定义级联保存、级联查询
默认为立即加载!
optional可选?也就是是否必须存在,false就是不允许为空。

一对一
@OneToOne(mapperBy="",cascade={CascadeType.*})
随便一端都可以作为关系维护端
通过mapperBy指定为被维护端
fetch默认为立即加载
外键则在关系维护端定义

多对多
确定维护关系,都是通过中间表,这样两端就都是与中间表形成一对多!
关系被维护端:
@ManyToMany(cascade={CascadeType.*},mapperBy="itself")
关系维护端
@ManyToMany(cascade={CascadeType.*})
@JoinTable(name="",[email protected](name=""),[email protected](name=""))
其中,inverseJoinColums只关系被维护端的外键
joinColum指关系维护端本身的外键
总结
关系被维护端用mapperBy来定义关系
关系维护端用joinColum来指定外键名称,维护外键或者是@JoinTable通过中间表维护关系

*ToOne 默认加载为立即加载
*ToMany 默认加载方式为懒加载

时间: 2024-12-22 16:10:41

JPA实体的常用注解的相关文章

Java : JPA相关以及常用注解

SpringDataJPA自定义的查询方法 定义规范       And 并且 Or 或     Is,Equals 等于 Between 两者之间 LessThan 小于 LessThanEqual 小于等于 GreaterThan 大于 GreaterThanEqual 大于等于 After 之后(时间) > Before 之前(时间) < IsNull 等于Null IsNotNull,NotNull 不等于Null Like 模糊查询.查询件中需要自己加 % NotLike 不在模糊范

Hibernate 关于实体映射常用注解

注解 类注解(写在类上面的) @Entity       标明实体类 @Table(name="数据库标明")      生成数据库时的表名由这个决定 @DynamicInsert 和 @DynamicUpdate 在Hibernate中可以利用@DynamicInsert(true)和@DynamicUpdate(true)生成动态SQL语句,即在插入和修改数据的时候,语句中只包括要插入或者修改的字段. 属性注解(写在属性上) @Id     标明该属性生成数据库表后相应字段为主键

JPA常用注解

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.        JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它不囿于EJB 3.0,你可以在Web应用.甚至桌面应用中使用.JPA的宗旨是为POJO提供持久化标准规范.        JPA的总体思想和现有Hibernate.TopLink,JDO等ORM框架大体一致.总的来说,JPA包括以下3方面的技术:     

JPA实体类中的注解

@Entity 标注于实体类上,通常和@Table是结合使用的,代表是该类是实体类@Table 标注于实体类上,表示该类映射到数据库中的表,没有指定名称的话就表示与数据库中表名为该类的简单类名的表名相对应,如果是逆向生成表的话就会以简单类名作为表名 如果指定名称,例如@Table(name="tb_user"),就表示映射到数据库中的tb_userz这个表:@Id 标注于属性上,通常是在get方法上,也可以在属性的声明上. 用于表示该属性作为ID主键@GeneratedValue 主键

JPA实体基本映射

1.前言 JPA可以使用XML映射文件来管理实体与数据表之间的映射关系,但在实际开发中,绝大部分情况都是采用Annotation来管理实体和数据表的映射关系.本篇着重来讲解一下JPA中采用注解形式来映射实体. 2.JPA属性注入 2.1.常用注解 @Entity:被该注解修饰的POJO就是一个实体 @Table:该注解反应的是所映射的一个表 @Column:该字段用来修饰多要描述的属性 [email protected] 在默认情况下,实体类的Field会自动映射到数据表的数据列,如果不想映射的

学习-常用注解

常用注解 @SpringBootApplication @SpringBootApplication是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration @SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名 @EnableAu

Hibernate之jpa实体映射的三种继承关系

在JPA中,实体继承关系的映射策略共有三种:单表继承策略(table per class).Joined策略(table per subclass)和Table_PER_Class策略. 1.单表继承策略 单表继承策略,父类实体和子类实体共用一张数据库表,在表中通过一列辨别字段来区别不同类别的实体.具体做法如下: a.在父类实体的@Entity注解下添加如下的注解: @Inheritance(Strategy=InheritanceType.SINGLE_TABLE)@Discriminator

swagger2的常用注解,传递参数的注意使用方法

说明: 1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成) 没有集成的请参见 SpringBoot集成springfox-swagger2构建restful API SpringMVC集成springfox-swagger2构建restful API 官网WIKI 常用注解: - @Api()用于类: 表示标识这个类是swagger的资源 - @

swagger2常用注解说明

原文:https://blog.csdn.net/u014231523/article/details/76522486 说明: 1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成) 没有集成的请参见 SpringBoot集成springfox-swagger2构建restful API SpringMVC集成springfox-swagger2构