我是靠谱客的博主 微笑学姐,这篇文章主要介绍JPA映射文件和注解解释,现在分享给大家,希望可以做个参考。

Mapping.xml

mapping.xml文件指示JPA的供应者来映射实体类与数据库表。

让我们以Employee实体包含四个属性的一个例子。POJO类Employee实体的命名为:Employee.java,如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class Employee { private int eid; private String ename; private double salary; private String deg; public Employee(int eid, String ename, double salary, String deg) { super( ); this.eid = eid; this.ename = ename; this.salary = salary; this.deg = deg; } public Employee( ) { super(); } public int getEid( ) { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname( ) { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSalary( ) { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getDeg( ) { return deg; } public void setDeg(String deg) { this.deg = deg; } }

上面的代码是Employee实体POJO类。它包含四个属性eid, ename,salary, 和 deg。考虑这些属性为表的字段,并且eid作为该表的主键。现在,我们要设计Hibernate映射文件了。映射文件名为 mapping.xml 如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<? xml version="1.0" encoding="UTF-8" ?> <entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd" version="1.0"> <description> XML Mapping file</description> <entity class="Employee"> <table name="EMPLOYEETABLE"/> <attributes> <id name="eid"> <generated-value strategy="TABLE"/> </id> <basic name="ename"> <column name="EMP_NAME" length="100"/> </basic> <basic name="salary"> </basic> <basic name="deg"> </basic> </attributes> </entity> </entity-mappings>

上述脚本用于与数据库表的映射实体类。在该文件中

  • <entity-mappings> : 标签定义的模式定义,允许实体标记为XML文件。

  • <description> : 标签提供了有关应用程序的描述。

  • <entity> : 标签定义要转换成数据库表中的实体类。属性类定义了POJO实体类的名称。

  • <table> : 标签定义的表名。如果想有两个类相同的名称以及该表中,则该标签是没有必要的。

  • <attributes> : 标签定义的属性(在表中的字段)。

  • <id> : 标记定义表中的主键。在<generated-value>标记定义了如何将主键值赋值,如Automatic, Manual或者使用 Sequence。

  • <basic> : 标签用于定义其余属性在表中。

  • <column-name> : 标签被用来在表中定义用户定义表的字段名。

注解

一般的XML文件用于配置特定的组件,或者映射两种不同规格的组件。在我们的例子中,我们要分别保持在一个框架的XML文件。这意味着在写一个映射的XML文件,我们需要比较用mapping.xml文件实体标签的POJO类的属性。

这里是解决方案。在类定义中,我们可以使用注释写配置的一部分。注解用于类,属性和方法。注释以'@'符号在类,属性或方法的注释中声明之前。 JPA的所有批注在javax.persistence包定义。

在这里,在我们的实例中使用的注释列表如下。

注解描述
@Entity声明类为实体或表。
@Table声明表名。
@Basic指定非约束明确的各个字段。
@Embedded指定类或它的值是一个可嵌入的类的实例的实体的属性。
@Id指定的类的属性,用于识别(一个表中的主键)。
@GeneratedValue指定如何标识属性可以被初始化,例如自动,手动,或从序列表中获得的值。
@Transient指定的属性,它是不持久的,即,该值永远不会存储在数据库中。
@Column指定持久属性栏属性。
@SequenceGenerator指定在@GeneratedValue注解中指定的属性的值。它创建了一个序列。
@TableGenerator指定在@GeneratedValue批注指定属性的值发生器。它创造了的值生成的表。
@AccessType这种类型的注释用于设置访问类型。如果设置@AccessType(FIELD),然后进入FIELD明智的。如果设置@AccessType(PROPERTY),然后进入属性发生明智的。
@JoinColumn指定一个实体组织或实体的集合。这是用在多对一和一对多关联。
@UniqueConstraint指定的字段和用于主要或辅助表的唯一约束。
@ColumnResult参考使用select子句的SQL查询中的列名。
@ManyToMany定义了连接表之间的多对多一对多的关系。
@ManyToOne定义了连接表之间的多对一的关系。
@OneToMany定义了连接表之间存在一个一对多的关系。
@OneToOne定义了连接表之间有一个一对一的关系。
@NamedQueries指定命名查询的列表。
@NamedQuery指定使用静态名称的查询。

最后

以上就是微笑学姐最近收集整理的关于JPA映射文件和注解解释的全部内容,更多相关JPA映射文件和注解解释内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部