摘要:
這些年來
在過去
在最近的Hibernate版本裡
Hibernate annotations 也支持最新的EJB
現在讓我們一步步了解Hibernate Annotations
安裝 Hibernate Annotations
為了使用Hibernate Annotations
<dependency>
<groupId>org
<artifactId>hibernate</artifactId>
<version>
</dependency>
<dependency>
<groupId>org
<artifactId>hibernate
<version>
</dependency>
<dependency>
<groupId>javax
<artifactId>persistence
<version>
</dependency>
下一步是獲得一個Hibernate Session 工廠
sessionFactory
=new AnnotationConfiguration()
一般的
<hibernate
<session
<mapping class=
<mapping class=
</session
</hibernate
如今許多java 工程都使用輕量級的程序框架例如Spring
<!
<bean id=
class=
<property name=
<ref bean=
</property>
<property name=
<props>
<prop key=
<prop key=
</props>
</property>
<property name=
<list>
<value>com
<value>com
</list>
</property>
</bean>
我們第一個持久化類
現在我們知道如何獲得基於Annotation的Hibernate Session
被注解的持久化類是一般的POJO類
@Entity
public class ModelPlane {
private Long id;
private String name;
@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this
}
public String getName() {
return name;
}
public void setName(String name) {
this
}
}
如我們所言
生成主鍵
Hibernate一個擅長的功能是主鍵自動生成
@Id
@GeneratedValue (strategy=GenerationType
public Long getId() {
return id;
}
自定義表和字段映射
默認情況下
CREATE TABLE MODELPLANE
(
ID long
NAME varchar
)
如果你自己生成和維護數據庫的話非常好
@Entity
@Table(name=
public class ModelPlane {
private Long id;
private String name;
@Id
@Column(name=
public Long getId() {
return id;
}
public void setId(Long id) {
this
}
@Column(name=
public String getName() {
return name;
}
public void setName(String name) {
this
}
}
它將映射到下面的表
CREATE TABLE T_MODEL_PLANE
(
PLANE_ID long
PLANE_NAME varchar
)
你可以利用Table和Column屬性自定義映射
@Column(name=
public String getName() {
return name;
}
…
映射關系
Java持久化映射中一個最重要
最常用的一個關系是many
@ManyToOne( cascade = {CascadeType
public PlaneType getPlaneType() {
return planeType;
}
這個CascadeType值表示Hibernate將怎麼進行級聯操作
另外一個常用的關系是與上面相對的:one
@OneToMany(mappedBy=
cascade=CascadeType
fetch=FetchType
@OrderBy(
public List<ModelPlane> getModelPlanes() {
return modelPlanes;
}
命名查詢
Hibernate一個優秀的特征是可以在映射文件申明命名查詢的能力
你也可以通過注解
@NamedQueries(
{
@NamedQuery(
name=
query=
)
@NamedQuery(
name=
query=
)
@NamedQuery(
name=
query=
)
}
)
一旦定義
總結
Hibernate
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28382.html