首页 技术 正文
技术 2022年11月6日
0 收藏 606 点赞 305 浏览 1531 个字

Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库。
这些普通Java对象被称作Entity Bean。
除了是用Java Persistence元数据将其映射到数据库外,Entity Bean与其他Java类没有任何区别。
事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

Java Persistence API还定义了一种查询语言(JPQL),具有与SQL相类似的特征,只不过做了裁减,以便处理Java对象而非原始的关系表。

注意:在Hibernate中也有@Entity和Table这两个注解,但是其中@Entity注解已经废弃,所以本文只分析JPA下的注解

解释:

  @Entity 表明该类 (UserEntity) 为一个实体类,它默认对应数据库中的表名是user_entity。这里也可以写成

      @Entity(name = “xwj_user”)

      或者

      @Entity
      @Table(name = “xwj_user”, schema = “test”)

      查看@Entity注解,发现其只有一个属性name,表示其所对应的数据库中的表名

  @Table 当实体类与其映射的数据库表名不同名时需要使用 @Table注解说明,该标注与 @Entity 注解并列使用,置于实体类声明语句之前,可写于单独语          句行,也可与声明语句同行。 
      @Table注解的常用选项是 name,用于指明数据库的表名 
      @Table注解还有两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名

如果缺省@Table注解,则class字段名即表中的字段名,所以需要@Column注解来改变class中字段名与db中表的字段名的映射规则

@Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下:
  )name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入;
  )unique:是否唯一;
  )nullable:是否允许为空;
  )length:对于字符型列,length属性指定列的最大字符长度;
  )insertable:是否允许插入;
  )updatetable:是否允许更新;
  )columnDefinition:定义建表时创建此列的DDL;
  )secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字

如果是主键id,还会用到@Id注解

@Id注释指定表的主键,它可以有多种生成方式:
  )TABLE:容器指定用底层的数据表确保唯一;
  )SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
  )IDENTITY:使用数据库的IDENTITY列莱保证唯一;
  )AUTO:由容器挑选一个合适的方式来保证唯一;
  )NONE:容器不负责主键的生成,由程序来完成。

其中与@Id一起使用的还有另外两个注解:@GeneratedValue、@GenericGenerator,具体使用方法可参考hibernate中的@GeneratedValue与@GenericGenerator

引用自 :

仅此而已-远方

https://www.cnblogs.com/xuwenjin/p/8830850.html

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,474
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,889
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,724
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,479
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,118
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,278