`

JPA注解 catalog

阅读更多

Table

Table用来定义entity主表的name,catalog,schema等属性。

元数据属性说明:

name: 表名
catalog: 对应关系数据库中的catalog,如果在entitybean中设置此属性,将在表名前面加上catalog指定的值,注意catalog的值一定是数据库的名称,不然会生成的sql语句回报找不到表的错误。
schema:对应关系数据库中的schema
UniqueConstraints:定义一个UniqueConstraint数组,指定需要建唯一约束的列
    
    @Entity
    @Table(name="CUST")
    public class Customer { ... }
  
SecondaryTable

一个entity class可以映射到多表,SecondaryTable用来定义单个从表的名字,主键名字等属性。

元数据属性说明:

name: 表名
catalog: 对应关系数据库中的catalog
schema:对应关系数据库中的schema
pkJoin: 定义一个PrimaryKeyJoinColumn数组,指定从表的主键列
UniqueConstraints:定义一个UniqueConstraint数组,指定需要建唯一约束的列
下面的代码说明Customer类映射到两个表,主表名是CUSTOMER,从表名是CUST_DETAIL,从表的主键列和

主表的主键列类型相同,列名为CUST_ID。

                
    @Entity
    @Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID"))
public class Customer { ... }
    
    
SecondaryTables

当一个entity class映射到一个主表和多个从表时,用SecondaryTables来定义各个从表的属性。

元数据属性说明:

value: 定义一个SecondaryTable数组,指定每个从表的属性。
                
@Table(name = "CUSTOMER")
@SecondaryTables( value = {
@SecondaryTable(name = "CUST_NAME", pkJoin = { @PrimaryKeyJoinColumn(name =

"STMO_ID", referencedColumnName = "id") }),
@SecondaryTable(name = "CUST_ADDRESS", pkJoin = { @PrimaryKeyJoinColumn(name =

"STMO_ID", referencedColumnName = "id") }) })
public class Customer {}
    
    
UniqueConstraint

UniqueConstraint定义在Table或SecondaryTable元数据里,用来指定建表时需要建唯一约束的列。

元数据属性说明:

columnNames:定义一个字符串数组,指定要建唯一约束的列名。
                
   @Entity
   @Table(name="EMPLOYEE",
   uniqueConstraints={@UniqueConstraint(columnNames={"EMP_ID",

"EMP_NAME"})}
   )
   public class Employee { ... }
    
    
Column

Column元数据定义了映射到数据库的列的所有属性:列名,是否唯一,是否允许为空,是否允许更新等

元数据属性说明:

name:列名。
unique: 是否唯一
nullable: 是否允许为空
insertable: 是否允许插入
updatable: 是否允许更新
columnDefinition: 定义建表时创建此列的DDL
secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字


        
    public class Person {
@Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)
private String name;

@Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL",

secondaryTable="PER_PHOTO")
private byte[] picture;
  
    
JoinColumn

如果在entity class的field上定义了关系(one2one或one2many等),我们通过JoinColumn来定义关系

的属性。JoinColumn的大部分属性和Column类似。

元数据属性说明:

name:列名。
referencedColumnName:该列指向列的列名(建表时该列作为外键列指向关系另一端的指定列)
unique: 是否唯一
nullable: 是否允许为空
insertable: 是否允许插入
updatable: 是否允许更新
columnDefinition: 定义建表时创建此列的DDL
secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字


下面的代码说明Custom和Order是一对一关系。在Order对应的映射表建一个名为CUST_ID的列,该列作为

外键指向Custom对应表中名为ID的列。

                
public class Custom {

    @OneToOne
@JoinColumn(
name="CUST_ID", referencedColumnName="ID", unique=true, nullable=true,

updatable=true)
public order getOrder() {
   return order;
}
    
    
JoinColumns

如果在entity class的field上定义了关系(one2one或one2many等),并且关系存在多个JoinColumn,

用JoinColumns定义多个JoinColumn的属性。

元数据属性说明:

value: 定义JoinColumn数组,指定每个JoinColumn的属性。
下面的代码说明Custom和Order是一对一关系。在Order对应的映射表建两列,一列名为CUST_ID,该列作

为外键指向Custom对应表中名为ID的列,另一列名为CUST_NAME,该列作为外键指向Custom对应表中名为

NAME的列。

                
public class Custom {
    @OneToOne
@JoinColumns({
    @JoinColumn(name="CUST_ID", referencedColumnName="ID"),
    @JoinColumn(name="CUST_NAME", referencedColumnName="NAME")
})
public order getOrder() {
   return order;
}
    
    
Id

声明当前field为映射表中的主键列。id值的获取方式有五种:TABLE, SEQUENCE, IDENTITY, AUTO,

NONE。Oracle和DB2支持SEQUENCE,SQL Server和Sybase支持IDENTITY,mysql支持AUTO。所有的数据库都

可以指定为AUTO,我们会根据不同数据库做转换。NONE (默认)需要用户自己指定Id的值。元数据属性说

明:

generate():主键值的获取类型
generator():TableGenerator的名字(当generate=GeneratorType.TABLE才需要指定该属性)
下面的代码声明Task的主键列id是自动增长的。(Oracle和DB2从默认的SEQUENCE取值,SQL Server和

Sybase该列建成IDENTITY,mysql该列建成auto increment。)

                
    @Entity
    @Table(name = "OTASK")
    public class Task {
   @Id(generate = GeneratorType.AUTO)
   public Integer getId() {
    return id;
   }
    }
    
    
IdClass

当entity class使用复合主键时,需要定义一个类作为id class。id class必须符合以下要求:类必须声

明为public,并提供一个声明为public的空构造函数。必须实现Serializable接,覆写 equals()和

hashCode()方法。entity class的所有id field在id class都要定义,且类型一样。

元数据属性说明:

value: id class的类名

                
    public class EmployeePK implements java.io.Serializable{
       String empName;
       Integer empAge;

    public EmployeePK(){}

    public boolean equals(Object obj){ ......}
    public int hashCode(){......}
    }


    @IdClass(value=com.acme.EmployeePK.class)
    @Entity(access=FIELD)
    public class Employee {
        @Id String empName;
        @Id Integer empAge;
    }
    
    
MapKey

在一对多,多对多关系中,我们可以用Map来保存集合对象。默认用主键值做key,如果使用复合主键,

则用id class的实例做key,如果指定了name属性,就用指定的field的值做key。

元数据属性说明:

name: 用来做key的field名字
下面的代码说明Person和Book之间是一对多关系。Person的books字段是Map类型,用Book的isbn字段的

值作为Map的key。

                
    @Table(name = "PERSON")
    public class Person {

@OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy =

"person")
@MapKey(name = "isbn")
private Map books = new HashMap();
    }
    
    
OrderBy

在一对多,多对多关系中,有时我们希望从数据库加载出来的集合对象是按一定方式排序的,这可以通

过OrderBy来实现,默认是按对象的主键升序排列。

元数据属性说明:

value: 字符串类型,指定排序方式。格式为"fieldName1 [ASC|DESC],fieldName2

[ASC|DESC],......",排序类型可以不指定,默认是ASC。
下面的代码说明Person和Book之间是一对多关系。集合books按照Book的isbn升序,name降序排列。

                
    @Table(name = "MAPKEY_PERSON")
    public class Person {

@OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy =

"person")
@OrderBy(name = "isbn ASC, name DESC")
private List books = new ArrayList();
    }
    
    
PrimaryKeyJoinColumn

在三种情况下会用到PrimaryKeyJoinColumn。

继承。
entity class映射到一个或多个从表。从表根据主表的主键列(列名为referencedColumnName值的列)

,建立一个类型一样的主键列,列名由name属性定义。
one2one关系,关系维护端的主键作为外键指向关系被维护端的主键,不再新建一个外键列。

元数据属性说明:

name:列名。
referencedColumnName:该列引用列的列名
columnDefinition: 定义建表时创建此列的DDL
下面的代码说明Customer映射到两个表,主表CUSTOMER,从表CUST_DETAIL,从表需要建立主键列CUST_ID

,该列和主表的主键列id除了列名不同,其他定义一样。

            
    @Entity
    @Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID",

referencedColumnName="id"))
public class Customer { 
@Id(generate = GeneratorType.AUTO)
   public Integer getId() {
    return id;
   }
}
    
    
下面的代码说明Employee和EmployeeInfo是一对一关系,Employee的主键列id作为外键指向

EmployeeInfo的主键列INFO_ID。

            
    @Table(name = "Employee")
    public class Employee {
@OneToOne
@PrimaryKeyJoinColumn(name = "id", referencedColumnName="INFO_ID")
EmployeeInfo info;
}
    
    
PrimaryKeyJoinColumns

如果entity class使用了复合主键,指定单个PrimaryKeyJoinColumn不能满足要求时,可以用

PrimaryKeyJoinColumns来定义多个PrimaryKeyJoinColumn。

元数据属性说明:

value: 一个PrimaryKeyJoinColumn数组,包含所有PrimaryKeyJoinColumn。
下面的代码说明了Employee和EmployeeInfo是一对一关系。他们都使用复合主键,建表时需要在

Employee表建立一个外键,从Employee的主键列id,name指向EmployeeInfo的主键列INFO_ID和

INFO_NAME.

            
   @Entity
   @IdClass(EmpPK.class)
   @Table(name = "EMPLOYEE")
   public class Employee {

private int id;

private String name;

private String address;

@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumns({
@PrimaryKeyJoinColumn(name="id", referencedColumnName="INFO_ID"),
@PrimaryKeyJoinColumn(name="name" , referencedColumnName="INFO_NAME")})
EmployeeInfo info;
    }

    @Entity
    @IdClass(EmpPK.class)
    @Table(name = "EMPLOYEE_INFO")
    public class EmployeeInfo {

@Id
@Column(name = "INFO_ID")
private int id;

@Id
@Column(name = "INFO_NAME")
private String name;
}
    
    
Transient

Transient用来注释entity的属性,指定的这些属性不会被持久化,也不会为这些属性建表。

    
    @Transient
    private String name;
    
    
Version

Version指定实体类在乐观事务中的version属性。在实体类重新由EntityManager管理并且加入到乐观事

务中时,保证完整性。每一个类只能有一个属性被指定为version,version属性应该映射到实体类的主

表上。

下面的代码说明versionNum属性作为这个类的version,映射到数据库中主表的列名是OPTLOCK。

                
    @Version
    @Column("OPTLOCK")
    protected int getVersionNum() { return versionNum; }
    
    
Lob

Lob指定一个属性作为数据库支持的大对象类型在数据库中存储。使用LobType这个枚举来定义Lob是二进

制类型还是字符类型。

LobType枚举类型说明:

BLOB 二进制大对象,Byte[]或者Serializable的类型可以指定为BLOB。
CLOB 字符型大对象,char[]、Character[]或String类型可以指定为CLOB。
元数据属性说明:

fetch: 定义这个字段是lazy loaded还是eagerly fetched。数据类型是FetchType枚举,默认为LAZY,

即lazy loaded.
type: 定义这个字段在数据库中的JDBC数据类型。数据类型是LobType枚举,默认为BLOB。
下面的代码定义了一个BLOB类型的属性和一个CLOB类型的属性。

                
    @Lob
    @Column(name="PHOTO" columnDefinition="BLOB NOT NULL")
    protected JPEGImage picture;
    
    @Lob(fetch=EAGER, type=CLOB)
    @Column(name="REPORT")
    protected String report;
    
    
JoinTable

JoinTable在many-to-many关系的所有者一边定义。如果没有定义JoinTable,使用JoinTable的默认值。

元数据属性说明:

table:这个join table的Table定义。
joinColumns:定义指向所有者主表的外键列,数据类型是JoinColumn数组。
inverseJoinColumns:定义指向非所有者主表的外键列,数据类型是JoinColumn数组。
下面的代码定义了一个连接表CUST和PHONE的join table。join table的表名是CUST_PHONE,包含两个外

键,一个外键是CUST_ID,指向表CUST的主键ID,另一个外键是PHONE_ID,指向表PHONE的主键ID。

                
    @JoinTable(
    table=@Table(name=CUST_PHONE),
    joinColumns=@JoinColumn(name="CUST_ID", referencedColumnName="ID"),
    inverseJoinColumns=@JoinColumn(name="PHONE_ID", referencedColumnName="ID")
    )
    
    
TableGenerator

TableGenerator定义一个主键值生成器,在Id这个元数据的generate=TABLE时,generator属性中可以

使用生成器的名字。生成器可以在类、方法或者属性上定义。

生成器是为多个实体类提供连续的ID值的表,每一行为一个类提供ID值,ID值通常是整数。

元数据属性说明:

name:生成器的唯一名字,可以被Id元数据使用。
table:生成器用来存储id值的Table定义。
pkColumnName:生成器表的主键名称。
valueColumnName:生成器表的ID值的列名称。
pkColumnValue:生成器表中的一行数据的主键值。
initialValue:id值的初始值。
allocationSize:id值的增量。
下面的代码定义了两个生成器empGen和addressGen,生成器的表是ID_GEN。

                
    @Entity public class Employee {
    ...
    @TableGenerator(name="empGen",
    table=@Table(name="ID_GEN"),
    pkColumnName="GEN_KEY",
    valueColumnName="GEN_VALUE",
    pkColumnValue="EMP_ID",
    allocationSize=1)
    @Id(generate=TABLE, generator="empGen")
    public int id;
    ...
    }
    
    @Entity public class Address {
    ...
    @TableGenerator(name="addressGen",
    table=@Table(name="ID_GEN"),
    pkColumnValue="ADDR_ID")
    @Id(generate=TABLE, generator="addressGen")
    public int id;
    ...
    }
    
    
SequenceGenerator

SequenceGenerator定义一个主键值生成器,在Id这个元数据的generator属性中可以使用生成器的名字

。生成器可以在类、方法或者属性上定义。生成器是数据库支持的sequence对象。

元数据属性说明:

name:生成器的唯一名字,可以被Id元数据使用。
sequenceName:数据库中,sequence对象的名称。如果不指定,会使用提供商指定的默认名称。
initialValue:id值的初始值。
allocationSize:id值的增量。
下面的代码定义了一个使用提供商默认名称的sequence生成器。

                
    @SequenceGenerator(name="EMP_SEQ", allocationSize=25) 
    
    
DiscriminatorColumn

DiscriminatorColumn定义在使用SINGLE_TABLE或JOINED继承策略的表中区别不继承层次的列。

元数据属性说明:

name:column的名字。默认值为TYPE。
columnDefinition:生成DDL的sql片断。
length:String类型的column的长度,其他类型使用默认值10。
下面的代码定义了一个列名为DISC,长度为20的String类型的区别列。

                
    @Entity
    @Table(name="CUST")
    @Inheritance(strategy=SINGLE_TABLE,
        discriminatorType=STRING,
       discriminatorValue="CUSTOMER")
    @DiscriminatorColumn(name="DISC", length=20)
    public class Customer { ... }

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


1、@Entity(name="EntityName")

     必须,name为可选,对应数据库中一的个表

2、@Table(name="",catalog="",schema="")

     可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息

name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名

catalog:可选,表示Catalog名称,默认为Catalog("").

schema:可选,表示Schema名称,默认为Schema("").

3、@id

必须 
@id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx()前.

4、@GeneratedValue(strategy=GenerationType,generator="")

可选 
strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种,分别表示让ORM框架自动选择, 
根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默

认为AUTO 
generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生

成方式. 
示例: 
    @Id 
    @GeneratedValues(strategy=StrategyType.SEQUENCE) 
    public int getPk() { 
       return pk; 
    }

5、@Basic(fetch=FetchType,optional=true)

可选
@Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认即为

@Basic 
fetch: 表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为EAGER.
optional:表示该属性是否允许为null,默认为true 
示例: 
    @Basic(optional=false) 
    public String getAddress() { 
       return address; 
    }

6、@Column 
可选 
@Column描述了数据库表中该字段的详细定义,这对于根据JPA注解生成数据库表结构的工具非常有作用. 
name:表示数据库表中该字段的名称,默认情形属性名称一致 
nullable:表示该字段是否允许为null,默认为true 
unique:表示该字段是否是唯一标识,默认为false 
length:表示该字段的大小,仅对String类型的字段有效 
insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为true 
updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为true.对于一经

创建就不可以更改的字段,该属性非常有用,如对于birthday字段. 
columnDefinition:表示该字段在数据库中的实际类型.通常ORM框架可以根据属性类型自动判断数据库中

字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是TIMESTAMP.此

外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的BLOB或TEXT字段类型,该

属性非常有用. 
示例: 
    @Column(name="BIRTH",nullable="false",columnDefinition="DATE") 
    public String getBithday() { 
       return birthday; 
    }

7、@Transient

可选 
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性. 
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为

@Basic 
示例: 
    //根据birth计算出age属性 
    @Transient 
    public int getAge() { 
       return getYear(new Date()) - getYear(birth);

    }

8、@ManyToOne(fetch=FetchType,cascade=CascadeType)

可选 
@ManyToOne表示一个多对一的映射,该注解标注的属性通常是数据库表的外键 
optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true 
fetch:表示抓取策略,默认为FetchType.EAGER 
cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认

为无级联操作 
targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判断

targetEntity. 
示例: 
    //订单Order和用户User是一个ManyToOne的关系 
    //在Order类中定义 
    @ManyToOne() 
    @JoinColumn(name="USER") 
    public User getUser() { 
       return user; 
    }

9、@JoinColumn 
可选 
@JoinColumn和@Column类似,介量描述的不是一个简单字段,而一一个关联字段,例如.描述一个

@ManyToOne的字段. 
name:该字段的名称.由于@JoinColumn描述的是一个关联字段,如ManyToOne,则默认的名称由其关联的实

体决定. 
例如,实体Order有一个user属性来关联实体User,则Order的user属性为一个外键, 
其默认的名称为实体User的名称+下划线+实体User的主键名称 
示例: 
    见@ManyToOne

10、@OneToMany(fetch=FetchType,cascade=CascadeType) 
可选 
@OneToMany描述一个一对多的关联,该属性应该为集体类型,在数据库中并没有实际字段. 
fetch:表示抓取策略,默认为FetchType.LAZY,因为关联的多个对象通常不必从数据库预先读取到内存 
cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实

体也应当被更新或删除 
例如:实体User和Order是OneToMany的关系,则实体User被删除时,其关联的实体Order也应该被全部删除 
示例: 
    @OneTyMany(cascade=ALL) 
    public List getOrders() { 
       return orders; 
    }

11、@OneToOne(fetch=FetchType,cascade=CascadeType)

可选 
@OneToOne描述一个一对一的关联 
fetch:表示抓取策略,默认为FetchType.LAZY 
cascade:表示级联操作策略 
示例: 
    @OneToOne(fetch=FetchType.LAZY) 
    public Blog getBlog() {

       return blog;

    }

12、@ManyToMany 
可选 
@ManyToMany 描述一个多对多的关联.多对多关联上是两个一对多关联,但是在ManyToMany描述中,中间表

是由ORM框架自动处理 
targetEntity:表示多对多关联的另一个实体类的全名,例如:package.Book.class 
mappedBy:表示多对多关联的另一个实体类的对应集合属性名称 
示例: 
    User实体表示用户,Book实体表示书籍,为了描述用户收藏的书籍,可以在User和Book之间建立

ManyToMany关联 
    @Entity 
    public class User {

       private List books;

       @ManyToMany(targetEntity=package.Book.class)

       public List getBooks() {

           return books;

       }

       public void setBooks(List books) {

           this.books=books;

       }

    }

    @Entity

    public class Book {

       private List users;

       @ManyToMany(targetEntity=package.Users.class, mappedBy="books")

       public List getUsers() {

           return users;

       }

       public void setUsers(List users) {

           this.users=users;

       }

    }

两个实体间相互关联的属性必须标记为@ManyToMany,并相互指定targetEntity属性, 
需要注意的是,有且只有一个实体的@ManyToMany注解需要指定mappedBy属性,指向targetEntity的集合属

性名称 
利用ORM工具自动生成的表除了User和Book表外,还自动生成了一个User_Book表,用于实现多对多关联

13、@MappedSuperclass

可选 
@MappedSuperclass可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解 
示例: 
    @MappedSuperclass

    public class Employee() {

       ....

    }

    @Entity

    public class Engineer extends Employee {

       .....

    }

    @Entity

    public class Manager extends Employee {

       .....

    }

14、@Embedded

可选 
@Embedded将几个字段组合成一个类,并作为整个Entity的一个属性. 
例如User包括id,name,city,street,zip属性. 
我们希望city,street,zip属性映射为Address对象.这样,User对象将具有id,name和address这三个属性. 
Address对象必须定义为@Embededable 
示例:

    @Embeddable

    public class Address {city,street,zip}

    @Entity

    public class User {

       @Embedded

       public Address getAddress() {

           ..........

       }

    }

Hibernate验证注解
注解 适用类型 说明 示例
@Pattern String 通过正则表达式来验证字符串 @attern(regex=”[a-z]{6}”)
@Length String 验证字符串的长度 @length(min=3,max=20)
@Email String 验证一个Email地址是否有效 @email
@Range Long 验证一个整型是否在有效的范围内 @Range(min=0,max=100)
@Min Long 验证一个整型必须不小于指定值 @Min(value=10)
@Max Long 验证一个整型必须不大于指定值 @Max(value=20)
@Size 集合或数组 集合或数组的大小是否在指定范围内 @Size(min=1,max=255)

以上每个注解都可能性有一个message属性,用于在验证失败后向用户返回的消息,还可以三个属性上使

用多个注解

分享到:
评论

相关推荐

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

    Java 程序使用 JPA 注解详解 Java 持久层 API(Java Persistence API)是一种 Java 应用程序接口,用于访问、管理和持久化数据之间的关系。JPA 使用注解来定义实体类与数据库表之间的映射关系,本文将详细介绍 JPA ...

    java程序使用JPA注解详解

    Java 程序使用 JPA 注解详解 Java 程序使用 JPA 注解可以实现对象关系映射(ORM),使得 Java 应用程序能够与关系数据库进行交互。JPA(Java Persistence API)提供了多种注解来定义实体类与数据库表之间的映射关系...

    JPA注解说明 详解

    JPA通过使用注解或XML来定义对象-关系映射(ORM),简化了数据库操作。下面将详细介绍JPA中的一些核心注解及其用法。 1. **@Entity(name="EntityName")**:此注解标记一个Java类为一个实体类,它对应数据库中的一个...

    JPA注解.doc J PA注解.

    以下是对JPA注解的详细解释: 1. **@Entity(name="EntityName")** 这个注解标记一个Java类为实体类,表示它将映射到数据库的一个表。`name`参数是可选的,用于指定表的名称。如果未指定,将使用类名作为表名。 2...

    play框架 JPA注解

    本文将深入探讨在Play Framework中JPA注解的使用。 1. **@Entity(name="EntityName")**:这个注解是必不可少的,用于声明一个Java类为一个实体,对应数据库中的一个表。`name`参数是可选的,当实体类名与数据库表名...

    JPA注解.docx

    以下是对JPA注解的详细解释: 1. **@Entity(name="EntityName")**:此注解用于标记一个类作为JPA的实体类,它对应数据库中的一个表。`name`参数是可选的,用于指定实体在数据库中的表名,若不指定,默认取类名。 2...

    JPA注解详解

    **JPA注解详解** Java Persistence API(JPA)是一种Java平台上的标准,用于管理和持久化对象关系映射(ORM)。在JPA中,注解是声明性编程的一部分,允许开发者在实体类上直接定义数据存储相关的元数据,简化数据库...

    JPA注解文档

    **JPA注解详解** Java Persistence API (JPA) 是Java平台上的一个规范,用于管理关系数据库中的对象。它提供了一种面向对象的方式来操作数据库,而无需深入理解SQL。在这个文档中,我们将深入探讨JPA中的一些核心...

    JPA注解帮助文档

    ### JPA注解详解 #### 一、概述 Java Persistence API (JPA) 是 Java 社区标准 JSR-317 的一部分,它提供了一种面向对象的方式来处理数据库操作,极大地方便了 Java 应用程序对关系数据库的操作。JPA 主要包括两个...

    hibernate基于jpa注解说明[参考].pdf

    本篇文章将详细解释在Hibernate中基于JPA注解的使用方法。 1. **@Entity(name="EntityName")**:这个注解用于声明一个Java类作为数据库中的实体,"EntityName"是可选的,如果不指定,那么实体的名称默认为类名。每...

    JPA注解(转)

    **JPA注解详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种对象/关系映射(ORM)机制,使得开发人员可以使用面向对象的编程方式来操作数据库。在JPA中,注解...

    jpa注解参考

    在实际应用中,JPA注解提供了极大的灵活性,使得开发者能够轻松地将Java对象与数据库表进行映射,减少了手动编写SQL的负担。同时,通过调整注解的配置,可以优化数据访问性能,例如通过延迟加载(Lazy Loading)来...

    JPA注解总结

    ### JPA注解详解 Java Persistence API (JPA) 是一种用于管理关系型数据库对象的标准。JPA 使用注解和 XML 来配置实体类与数据库表之间的映射关系。本文将详细解读 JPA 注解的基本用法,并通过 Hibernate 框架作为...

    JAVA ---JPA注解

    ### JAVA -- JPA注解详解 #### 1. @Entity 注解 - **定义**:`@Entity` 是 Java Persistence API (JPA) 中用于标识一个类作为持久化实体类的关键注解。它告诉 JPA 提供商(如 Hibernate)这个类将会映射到数据库表...

    JPA注解详细解释、EJB3、 Hibernate开发

    ### JPA注解详解 Java Persistence API (JPA) 是一种用于管理关系型数据库对象的标准。JPA 使用注解来简化对象与关系映射(ORM)的过程,这使得开发者能够更加专注于业务逻辑而不是数据访问层的细节。下面将详细...

    JPA注解参考手册.doc

    在JPA中,注解是一种非常重要的方式,可以方便地在实体类上声明数据库相关的元数据。以下是对JPA中几个关键注解的详细解释: 1. `@Table`:这个注解用于指定实体类所对应的数据库表。例如: ```java @Entity @...

    JPA注解教程

    ### JPA注解教程 #### 一、JPA与实体持久化 Java Persistence API (JPA) 是一种用于管理关系型数据库中数据的标准规范。它允许开发者以面向对象的方式操作数据库,无需直接编写SQL语句。JPA的核心是实体管理和查询...

    JPA批注参考(主要介绍JPA中的相关注解)

    - **`@Table`**:此注解用于指定实体映射到数据库表的名称或其他属性,如 schema 或 catalog。 - **`@Column`**:用于指定实体类中字段映射到数据库表中的列。 - **`@JoinColumn`** 和 **`@JoinColumns`**:这两个...

    JPA学习笔记-EJB-02JPA属性注解

    ### JPA学习笔记-EJB-02JPA属性注解 #### 一、引言 在上一篇文章中,我们简要介绍了Java Persistence API (JPA)的基础知识,包括它的基本部署和操作流程,从而让我们对JPA有了初步的认识。本文将继续深入探讨JPA的...

Global site tag (gtag.js) - Google Analytics