浅析Hibernate EntityManager

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅析Hibernate EntityManager 这里介绍使用Hibernate EntityManager和使用Hibernate Core是差不多的,只不过EntityManger还可以方便的在JEE容器中使用,这就是EJB3的持久化实现机制.
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate EntityManager,包括介绍Hibernate Annotation等方面。

JBoss的EJB3实现中,就使用Hibernate EntityManager和Annotations作为数据持久化机制,本文不准备讨论如何在JBoss中使用Hibernate EntityManager我们在本文中看看如何在JSE环境中使用EntityManger,这样当你的项目需要扩展到JEE容器中时,同样的EntityManger升级是很简单的.OK,下面我们看看如何在JSE环境中应用EntityManager吧:环境配置:
JDK:v5.0or更新
Hibernate core:v3.1.1or更新(要包涵Hibernate Core所需要的Jar库)
Hibernate Annotation:v3.1beta8
Hibernate EntityManger:v3.1beta6
下面看两个相关的定义
1.EntityManagerFactory
EntityManagerFactory提供Entity manager的实例(instances:所有被配置的实例都连接相同的数据库)利用相同的默认设置.你可以准备几个EntityManagerFactory来访问不同的数据库.该接口(interface)和Hibernate core中的SessionFactory差不多.
2.EntityManager
EntityManager API是用来在一个特别的工作单元(particular unit of work)中访问数据库的.她用来创建和删除(create and remove)持久实体实例的;可以通过实体的主键标识符(primary key identity)来查询(find)实体;或者查询所有实体.这个接口和Hibernate core中的Session差不多.
因此,使用Hibernate EntityManager和使用Hibernate Core是差不多的,只不过EntityManger还可以方便的在JEE容器中使用,这就是EJB3的持久化实现机制.
下面我通过一个来自EntityManger test suit中的修改版的简单示例来演示一些如何在JSE环境中配置和操作持久化实体.
下面是一个利用Hibernate Annotation注释的持久化实体:
1/*
2*Created on2006-2-5
3*@author icerain
4*/
5package test.test;
6
7import java.io.Serializable;
8import java.util.HashSet;
9import java.util.Set;
10import javax.persistence.Column;
11import javax.persistence.Entity;
12import javax.persistence.EntityResult;
13import javax.persistence.FieldResult;
14import javax.persistence.Id;
15import javax.persistence.OneToMany;
16import javax.persistence.SqlResultSetMapping;
17
18@Entity(name="Item")
19@SqlResultSetMapping(name="getItem",entities=
20@EntityResult(name="org.hibernate.ejb.test.Item",fields={
21@FieldResult(name="name",column="itemname"),
22@FieldResult(name="descr",column="itemdescription")
23})
24)
25@Cache(region="Item",usage=NONSTRICT_READ_WRITE) 26public class Item implements Serializable{
27
28private String name;
29private String descr;
30private Set distributors;
31
32public Item(){
33}
34
35public Item(String name,String desc){
=name;
37this.descr=desc;
38}
39
40@Column(length=200)
41public String getDescr(){
42return descr;
43}
44
45public void setDescr(String desc){
46this.descr=desc;
47}
48
49@Id
50@Column(length=30)
51public String getName(){
52return name;
53}
54
55public void setName(String name){
=name;
57}
58
59@OneToMany
60public Set getDistributors(){
61return distributors;
62}
63
64public void setDistributors(Set distributors){ 65this.distributors=distributors;
66}
67
68public void addDistributor(Distributor d){
69if(distributors==null)distributors=new HashSet();
70distributors.add(d);
71}
72}
本文由天津白癜风医院(/)负责人整理与大家分享!。

相关文档
最新文档