<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JavaChen on JavaJPA</title>
	<atom:link href="http://www.javachen.com/tag/jpa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javachen.com</link>
	<description>Just some sharing about Java open source and life</description>
	<lastBuildDate>Fri, 03 Feb 2012 03:33:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Hibernate Object Persistence</title>
		<link>http://www.javachen.com/2010/03/hibernate-object-persistence/</link>
		<comments>http://www.javachen.com/2010/03/hibernate-object-persistence/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 07:34:35 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[JPA]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=1081</guid>
		<description><![CDATA[上篇文章讲到了Java  Persistence API（Java 数据持久化API），hibernate作为JPA的一种实现，是一个数据持久化组件。所谓对象持久化(Object Persistence)，就是把数据保存在永久存储介质中（数据库）。 1.为什么要持久化: a.内存是暂时存储设备,断电后数据易丢失 b.网络传输无法传输内存中的对象，需要将对象外化 c.内存中数据查询,组织不方便 d.内存只能存储少量数据 2.怎样持久化 a.对象序列化 &#8211;&#62; 二进制流；合并存储,粒度大,无规律；不支持检索只适合少数个别对象的序列化 b.用JDBC/EJB/ORM 将数据存入数据库 1） 用JDBC:(Java DB Connection) 优点:底层开发,控制力强(细); 效率最高; 标准的(SQL)JDBC,有可移植性 缺点:过于复杂; 代码量大; 可维护性差(代码重用性低); 2）用EJB:(Entity Java Bean) 优点:直接自动生成JDBC代码; 持久对象(PO)的状态由服务器管理; 声明式的事务 缺点:功能不全(特殊的组件,不能做继承关系); EJB容器是侵入性容器,失去OO的优点; 调试更复杂 3）用ORM:（object relation mapping）对象关系映射 优点:自动生成JDBC(代码量下降); 使用(plain oldest java object&#8212;pojo),非侵入型; 提供状态管理; 难度下降,不需要容器 缺点:由于开源, 文档少; bug多; 技术支持差 结论: 用java开发&#8211;&#62;必须将数据持久化&#8211;&#62;用数据库持久化&#8211;&#62;须用ORM&#8211;&#62;需要用Hibernate 3.Hibernate是如何实现ORM的功能？ 在使用Hibernate实现ORM功能的时候，主要的文件有：映射类（*.java）、映射文件（*.hbm.xml）以及数据库配置文件（*.properties或*.cfg.xml），它们各自的作用如下。 ⑴映射类：它的作用是描述数据库表的结构，表中的字段在类中被描述成属性，将来就可以实现把表中的记录映射成为该类的对象。 ⑵映射文件：它的作用是指定数据库表和映射类之间的关系，包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Hibernate 开发步骤" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 开发步骤</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate one-to-many  association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_one-to-many-_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-many  association</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="hibernate如何初始化" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F06%2Fhow-to-init-hibernate%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">hibernate如何初始化</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate 关联属性详解" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_association_keys%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 关联属性详解</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate one-to-one association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernat_-one-to-one_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/09/19/10385005.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-one association</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>上篇文章讲到了Java  Persistence API（Java 数据持久化API），hibernate作为JPA的一种实现，是一个数据持久化组件。所谓对象持久化(Object Persistence)，就是把数据保存在永久存储介质中（数据库）。<span id="more-1081"></span></p>
<p>1.为什么要持久化:</p>
<p>a.内存是暂时存储设备,断电后数据易丢失</p>
<p>b.网络传输无法传输内存中的对象，需要将对象外化</p>
<p>c.内存中数据查询,组织不方便</p>
<p>d.内存只能存储少量数据</p>
<p>2.怎样持久化</p>
<p>a.对象序列化 &#8211;&gt; 二进制流；合并存储,粒度大,无规律；不支持检索只适合少数个别对象的序列化</p>
<p>b.用JDBC/EJB/ORM 将数据存入数据库</p>
<p>1） 用JDBC:(Java DB Connection)</p>
<p>优点:底层开发,控制力强(细); 效率最高; 标准的(SQL)JDBC,有可移植性</p>
<p>缺点:过于复杂; 代码量大; 可维护性差(代码重用性低);</p>
<p>2）用EJB:(Entity Java Bean)</p>
<p>优点:直接自动生成JDBC代码; 持久对象(PO)的状态由服务器管理; 声明式的事务</p>
<p>缺点:功能不全(特殊的组件,不能做继承关系); EJB容器是侵入性容器,失去OO的优点; 调试更复杂</p>
<p>3）用ORM:（object relation mapping）对象关系映射</p>
<p>优点:自动生成JDBC(代码量下降); 使用(plain oldest java object&#8212;pojo),非侵入型; 提供状态管理; 难度下降,不需要容器</p>
<p>缺点:由于开源, 文档少; bug多; 技术支持差</p>
<p>结论: 用java开发&#8211;&gt;必须将数据持久化&#8211;&gt;用数据库持久化&#8211;&gt;须用ORM&#8211;&gt;需要用Hibernate</p>
<p>3.Hibernate是如何实现ORM的功能？</p>
<p>在使用Hibernate实现ORM功能的时候，主要的文件有：映射类（*.java）、映射文件（*.hbm.xml）以及数据库配置文件（*.properties或*.cfg.xml），它们各自的作用如下。<br />
⑴映射类：它的作用是描述数据库表的结构，表中的字段在类中被描述成属性，将来就可以实现把表中的记录映射成为该类的对象。<br />
⑵映射文件：它的作用是指定数据库表和映射类之间的关系，包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。<br />
⑶数据库配置文件：它的作用是指定与数据库连接时需要的连接信息，比如连接哪中数据库、登录用户名、登录密码以及连接字符串等。</p>
<p>在这三种主要的文件中，映射类为普通Java源文件、映射文件为XML格式、数据库配置文件为Properties格式或者是XML格式。Hibernate就是通过解析这些文件，实现Java对象到数据库实体的映射。</p>
<p>5.Hibernate 中Java对象的状态<br />
1.临时状态 (transient)<br />
特征：<br />
1】不处于Session 缓存中<br />
2】数据库中没有对象记录<br />
Java如何进入临时状态<br />
1】通过new语句刚创建一个对象时<br />
2】当调用Session 的delete()方法，从Session 缓存中删除一个对象时。</p>
<p>2.持久化状态(persisted)<br />
特征：<br />
1】处于Session 缓存中<br />
2】持久化对象数据库中设有对象记录<br />
3】Session 在特定时刻会保持二者同步<br />
Java如何进入持久化状态<br />
1】Session 的save()把临时－》持久化状态<br />
2】Session 的load(),get()方法返回的对象<br />
3】Session 的find()返回的list集合中存放的对象<br />
4】Session 的update(),saveOrupdate()使游离－》持久化<br />
3.游离状态(detached)<br />
特征：<br />
1】不再位于Session 缓存中<br />
2】游离对象由持久化状态转变而来，数据库中可能还有对应记录。<br />
Java如何进入持久化状态－》游离状态<br />
1】Session 的close()方法<br />
2】Session 的evict()方法，从缓存中删除一个对象。提高性能。少用。</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Hibernate 开发步骤" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 开发步骤</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate one-to-many  association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_one-to-many-_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-many  association</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="hibernate如何初始化" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F06%2Fhow-to-init-hibernate%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">hibernate如何初始化</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate 关联属性详解" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_association_keys%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 关联属性详解</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate one-to-one association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernat_-one-to-one_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/09/19/10385005.png" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-one association</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>Here is no comments yet by the time  your rss reader get this, Do you want to be the first commentor? Hurry up ]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2010/03/hibernate-object-persistence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Persistence API</title>
		<link>http://www.javachen.com/2010/03/java-persistence-api/</link>
		<comments>http://www.javachen.com/2010/03/java-persistence-api/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 08:31:52 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[Java Core]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=1071</guid>
		<description><![CDATA[今天看了看关于JPA（Java Persistence API）的一些知识，并在myeclipse 8里参照帮助文档里的学习文档写出了第一个JPA工程，初步的了解了在myeclipse 上如何方便利用JPA进行持久化操作的代码开发。很久没有接触持久化操作的代码开发了，决定找些实例回忆一下持久化操作的操作方法与步骤。 在百度百科里可以看到JPA的一些介绍，简单归纳如下： JPA通过JDK 5.0注解或XML描述对象－关系表的映射关系，并将运行期的实体对象持久化到数据库中。JPA ORM规范有SUN引入，主要是因为两个原因：其一，简化现有Java EE和Java SE应用的对象持久化的开发工作；其二，Sun希望整合对ORM技术，实现天下归一。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。 JPA支持XML和JDK 5.0注解两种元数据的形式，元数据描述对象和表之间的映射关系，框架据此将实体对象持久化到数据库表中；JPA通过面向对象而非面向数据库的查询语言查询数据。 JPA 的目标之一是制定一个可以由很多供应商实现的API，并且开发人员可以编码来实现该API，而不是使用私有供应商特有的API。因此开发人员只需使用供应商特有的API来获得JPA规范没有解决但应用程序中需要的功能。尽可能地使用JPA API，但是当需要供应商公开但是规范中没有提供的功能时，则使用供应商特有的API。 JPA是需要Provider来实现其功能的，Hibernate就是JPA Provider中很强的一个，目前来说应该无人能出其右。从功能上来说，JPA现在就是Hibernate功能的一个子集。 JPA提供一种标准的OR映射解决方案，该解决方案完全集成到EJB3。0兼容的容器中，目前，Hibernate、spring、OpenJPA、Toplink、Entitymanager都实现了JPA。 JPA主要通过JDK 5.0注解和XML，来实现对象持久化的操作，通过看JPA代码就可以看到有很多的注解，这再次说明java注解在java 技术中是多么重要。要想理解现在的一些开源框架，完全有必要掌握java的基础知识，只有这样才能知其所以然！有必好好学习java注解和发射等知识！ 网上有传智播客JPA详解视频教程：http://www.itcast.cn/itcast_static/JPAVideo.htm Here is no comments yet by the time your rss reader get this, Do you want to be the first commentor? Hurry up<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Java Enumeration" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-enumeration%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java Enumeration</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java StringUtil" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Fjava-stringutil%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java StringUtil</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java中的集合类" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F09%2Fjava_collection%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java中的集合类</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java中比较两个对象是否相等" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F08%2Fjava-lang-equals-method%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java中比较两个对象是否相等</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java 反射机制" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Fjava-reflection%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java 反射机制</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>今天看了看关于JPA（Java Persistence API）的一些知识，并在myeclipse 8里参照帮助文档里的学习文档写出了第一个JPA工程，初步的了解了在myeclipse 上如何方便利用JPA进行持久化操作的代码开发。很久没有接触持久化操作的代码开发了，决定找些实例回忆一下持久化操作的操作方法与步骤。<span id="more-1071"></span><br />
在百度百科里可以看到JPA的一些介绍，简单归纳如下：</p>
<p><span style="color: #00ff00;">JPA通过JDK 5.0注解或XML描述对象－关系表的映射关系，并将运行期的实体对象持久化到数据库中</span>。JPA ORM规范有SUN引入，主要是因为两个原因：其一，简化现有Java EE和Java SE应用的对象持久化的开发工作；其二，Sun希望整合对ORM技术，实现天下归一。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。</p>
<p><span style="color: #00ff00;">JPA支持XML和JDK 5.0注解两种元数据的形式</span>，元数据描述对象和表之间的映射关系，框架据此将实体对象持久化到数据库表中；JPA通过面向对象而非面向数据库的查询语言查询数据。</p>
<p>JPA 的目标之一是制定一个可以由很多供应商实现的API，并且开发人员可以编码来实现该API，而不是使用私有供应商特有的API。因此开发人员只需使用供应商特有的API来获得JPA规范没有解决但应用程序中需要的功能。尽可能地使用JPA API，但是当需要供应商公开但是规范中没有提供的功能时，则使用供应商特有的API。</p>
<p>JPA是需要Provider来实现其功能的，Hibernate就是JPA Provider中很强的一个，目前来说应该无人能出其右。从功能上来说，JPA现在就是Hibernate功能的一个子集。</p>
<p>JPA提供一种标准的OR映射解决方案，该解决方案完全集成到EJB3。0兼容的容器中，目前，Hibernate、spring、OpenJPA、Toplink、Entitymanager都实现了JPA。</p>
<p>JPA主要通过JDK 5.0注解和XML，来实现对象持久化的操作，通过看JPA代码就可以看到有很多的注解，这再次说明java注解在java 技术中是多么重要。要想理解现在的一些开源框架，完全有必要掌握java的基础知识，只有这样才能知其所以然！有必好好学习java注解和发射等知识！</p>
<p>网上有传智播客JPA详解视频教程：<a href="http://www.itcast.cn/itcast_static/JPAVideo.htm">http://www.itcast.cn/itcast_static/JPAVideo.htm</a></p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Java Enumeration" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-enumeration%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java Enumeration</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java StringUtil" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Fjava-stringutil%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java StringUtil</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java中的集合类" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F09%2Fjava_collection%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java中的集合类</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java中比较两个对象是否相等" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F08%2Fjava-lang-equals-method%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java中比较两个对象是否相等</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Java 反射机制" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Fjava-reflection%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fjava-persistence-api%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Java 反射机制</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>Here is no comments yet by the time  your rss reader get this, Do you want to be the first commentor? Hurry up ]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2010/03/java-persistence-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate 开发步骤</title>
		<link>http://www.javachen.com/2009/05/hibernate_operation_1/</link>
		<comments>http://www.javachen.com/2009/05/hibernate_operation_1/#comments</comments>
		<pubDate>Sun, 17 May 2009 02:37:34 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=163</guid>
		<description><![CDATA[1.Object Relation Mapping 持久化类与关系表对应，持久化类实例与表中一行记录对应。 2.相关名词： POJO(Plain Old Java Objects)：实际就是普通JavaBeans,使用POJO名称是为了和EJB混淆起来, 而且简称比较直接.在Hibernate中代表包含Setter、Getter这些最基本操作的值对象。 BO：代表包含一些业务逻辑的值对象，它的作用域很大，也就是说BO在充当持久类的同时可以传到UI层。 PO代表持久对象，是纳入Hibernate管理框架中的，在一定程度上可以和值对象的概念互换，值对象经过Hibernate 进行处理，就变成了PO。 Hibernate配置文件: hibernate.cfg.xml或 hibernate.properties，不过推荐使用XML格式。 映射文件*.hbm.xml：映射文件的作用是将POJO与关系型数据库数据相绑定，作为一个桥梁。 OID： Hibernate中用对象标识符OID来维持java对象和表中记录的对应关系，OID定义为整数类型(short、int、long),通常由Hibernate或通过底层数据库给OID赋值。 持久化类：被Hibernate持久化到数据库中，通过Setter和Getter方法，若为boolean型则可用is*方法。Hibernate不要求持久化类必须实现Serializable，但在分布式不同结点间传输持久化类必须实现Serializable接口 3.在开发Hibernate应用的时候需要预先把相应的JAR包配置到CLASS_PATH，我使用的是MyEclipse作为开发工具，主要的JAR大致如下： &#8212;antlr.jar &#8212;cglib.jar &#8212;asm.jar &#8212;asm-attrs.jar &#8212;commons-collections.jar &#8212;commons-logging.jar &#8212;ehcache.jar &#8212;hibernate3.jar &#8212;jta.jar &#8212;dom4j.jar &#8212;log4j.jar 4.开发Hibernate程序的步骤 开发Hibernate程序通常分为下面这几步： 1&#62;、 建立JavaBean&#8211;&#62; 每个JavaBean必须提供一个无参的构造函数，并为private属性提供get/set访问方法。如下： [code lang="Java"] package com.kettas.hibernate.orm.m2m; import java.util.HashSet; import java.util.Set; public class Student { private Integer sid; //oid属性，用于与数据的表中主键相对应 private String [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Hibernate one-to-many  association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_one-to-many-_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-many  association</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate Object Persistence" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate Object Persistence</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate many-to-many实例" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fmany-to-many_example%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate many-to-many实例</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate 关联属性详解" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_association_keys%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 关联属性详解</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate的缓存机制" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fhibernate-two-kinds-of-cache%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate的缓存机制</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>1.Object Relation Mapping<br />
持久化类与关系表对应，持久化类实例与表中一行记录对应。<br />
2.相关名词：<br />
POJO(Plain Old Java Objects)：实际就是普通JavaBeans,使用POJO名称是为了和EJB混淆起来, 而且简称比较直接.在Hibernate中代表包含Setter、Getter这些最基本操作的值对象。<br />
BO：代表包含一些业务逻辑的值对象，它的作用域很大，也就是说BO在充当持久类的同时可以传到UI层。  PO代表持久对象，是纳入Hibernate管理框架中的，在一定程度上可以和值对象的概念互换，值对象经过Hibernate<br />
进行处理，就变成了PO。<br />
Hibernate配置文件:<br />
hibernate.cfg.xml或 hibernate.properties，不过推荐使用XML格式。<br />
<img src="http://www.javachen.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" mce_src="http://www.javachen.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" class="mceWPmore mceItemNoResize" title="More..."/> 映射文件*.hbm.xml：映射文件的作用是将POJO与关系型数据库数据相绑定，作为一个桥梁。<br />
OID： Hibernate中用对象标识符OID来维持java对象和表中记录的对应关系，OID定义为整数类型(short、int、long),通常由Hibernate或通过底层数据库给OID赋值。<br />
持久化类：被Hibernate持久化到数据库中，通过Setter和Getter方法，若为boolean型则可用is*方法。Hibernate不要求持久化类必须实现Serializable，但在分布式不同结点间传输持久化类必须实现Serializable接口<br />
3.在开发Hibernate应用的时候需要预先把相应的JAR包配置到CLASS_PATH，我使用的是MyEclipse作为开发工具，主要的JAR大致如下：<br />
&#8212;antlr.jar<br />
&#8212;cglib.jar<br />
&#8212;asm.jar<br />
&#8212;asm-attrs.jar<br />
&#8212;commons-collections.jar<br />
&#8212;commons-logging.jar<br />
&#8212;ehcache.jar<br />
&#8212;hibernate3.jar<br />
&#8212;jta.jar<br />
&#8212;dom4j.jar<br />
&#8212;log4j.jar</p>
<p>4.开发Hibernate程序的步骤<br />
开发Hibernate程序通常分为下面这几步：<br />
1&gt;、 建立JavaBean&#8211;&gt; 每个JavaBean必须提供一个无参的构造函数，并为private属性提供get/set访问方法。如下：</p>
<p>[code lang="Java"]<br />
package com.kettas.hibernate.orm.m2m;<br />
import java.util.HashSet;<br />
import java.util.Set;<br />
public class Student {<br />
private Integer sid;   //oid属性，用于与数据的表中主键相对应<br />
private String sname;  // syudent age sex 为业务属性<br />
private int age;<br />
private String sex;<br />
private Set courses=new HashSet();  //关系属性，用于维护实体之间的关系</p>
<p>public Student() {   //提供一个默认的构造方法，便于hibernate底层使用发射机制<br />
super();<br />
}</p>
<p>public Student(String sname, int age, String sex) {<br />
this.sname = sname;<br />
this.age = age;<br />
this.sex = sex;<br />
}</p>
<p>public int getAge() {<br />
return age;<br />
}</p>
<p>public void setAge(int age) {<br />
this.age = age;<br />
}</p>
<p>public Set getCourses() {<br />
return courses;<br />
}</p>
<p>public void setCourses(Set courses) {<br />
this.courses = courses;<br />
}</p>
<p>public String getSex() {<br />
return sex;<br />
}</p>
<p>public void setSex(String sex) {<br />
this.sex = sex;<br />
}</p>
<p>public Integer getSid() {<br />
return sid;<br />
}</p>
<p>public void setSid(Integer sid) {<br />
this.sid = sid;<br />
}</p>
<p>public String getSname() {<br />
return sname;<br />
}</p>
<p>public void setSname(String sname) {<br />
this.sname = sname;<br />
}<br />
}</p>
<p>[/code]</p>
<p>&#8212;&#8212;&#8212;-field和property的区别以及应注意事项&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
区别：<br />
field指用privat关键字修饰的变量sid，sname，age，sex，而private指的是setter和getter方法去掉set和get得到的将大写字母转换为小写的字母的变量。<br />
注意：<br />
(2)javabean中的setter和getter后面的名字一定要与field的值相对应 如 priavte String sname ,getSname(),setSname(),这点很重要，不然hibernate<br />
读取配置文件会报错<br />
(2)每个JavaBean必须提供一个无参的构造函数，并为private属性提供get/set访问方法。</p>
<p>5.标准的配置文件<br />
&lt; ?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&gt;<br />
&lt; !DOCTYPE hibernate-configuration PUBLIC<br />
“-//Hibernate/Hibernate Configuration DTD 3.0//EN”<br />
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”&gt;</p>
<p><!--配置线程安全安的session，为每一个事物transaction分配一个session--></p>
<p>thread</p>
<p><!-- 显示SQL --></p>
<p>true true</p>
<p><!-- 配置数据库方言 --></p>
<p>org.hibernate.dialect.Oracle9Dialect</p>
<p><!-- 配置数据库连接 --></p>
<p>oracle.jdbc.driver.OracleDriver kettas kettas jdbc:oracle:thin:@192.168.0.200:1521:kettas</p>
<p><!-- 配置连接池 --></p>
<p>2 2 5000 100 3000 2 false</p>
<p><!--配置jdbc里的batch大小--></p>
<p>20 false</p>
<p><!-- 指定hibernate管理的映射文件 --></p>
<p>说明：<br />
1.指明配置文件所在地方，在这里包结构用/连接不是用.<br />
2.配置文件放在实体类所在位置，一般是放在entity包内与实体类在一起。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&gt;映射文件：<br />
&lt; ?xml version=”1.0&#8243;?&gt;<br />
&lt; !DOCTYPE hibernate-mapping PUBLIC<br />
“-//Hibernate/Hibernate Mapping DTD 3.0//EN”<br />
“http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”&gt;</p>
<p>czj_hibernate_student_seq</p>
<p>czj_hibernate_course_seq</p>
<p>映射文件说明：<br />
Java                         database<br />
calss(entity) 	    		table<br />
object(persistent object)       row<br />
field				column(oid&#8212;-k)<br />
relation			pk,fk<br />
1&gt;    标签用于指定哪一个类对应数据库中哪一个表<br />
package属性用于指定本映射文件中包含类的包名为全局包，从而不必为每个类指定完整包名。<br />
2&gt;      标签用于指定java中oid对应于数据库中的哪一列<br />
指定以哪种方式生成数据库中主键标识符<br />
&#8212;&#8212;&#8212;&#8211;常见标识符生成器&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Hibernate中内置标识符生成器，均适合代理主键<br />
increment：由Hibernate自增生成<br />
identity：由底层数据库生成<br />
sequence：底层数据库序列生成<br />
hilo：根据high/low等算法生成以特定表字段作high值<br />
native：自动选择identity、dequence、hilo<br />
assgned：自然主键(尽量避免使用)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
3&gt;</p>
<p>说明： 标签指定java中的关系对应数据库中的表与表之间的关系<br />
inverse属性： 为避免Hibernate在清理缓存时对相关联对象都执行更新操作，将inverse设置为true，将主控权交给many一方，以仅控mamy方状态更新对象。<br />
不加默认为false，双方都不维护java类中的关系，运行会报错，此属性只用在one-to-many many-to-many中<br />
cascade属性： 级联属性，当cascade属性设置为delete，在删除一对象时自动删除与其级联的对象，删除后持久化对象变为临时状态。<br />
中column列值指的是Course类对应czj_hibernate_relation中的course_id这一列<br />
指明Student这一类中的关系属性Set集合中Course类在java中与Student类的关系</p>
<p>6。hiberante开发步骤<br />
1&gt;写实体层中的实体类<br />
2&gt;在数据库中建表<br />
3&gt;写配置文件和映射文件<br />
4&gt;写Dao层，在此层写hibernate应用程序<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-hibernate应用程序步骤&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
1&gt;、创建配置(Configuration)<br />
Configuration cfg = new Configuration().configure();<br />
2&gt;、构建会话工厂(SessionFactory)<br />
SessionFactory ＝ cfg.buildSessionFactory();<br />
3&gt;、打开会话（session）<br />
Session session = sf.openSession();<br />
4&gt;、启动事务(Transaction)<br />
Transaction ts = session.beginTransaction();<br />
5&gt;、持久化操作（CUQD）<br />
session.save(*);  *表示一个对象<br />
session.update(*);<br />
session.delete(*);<br />
6&gt;、提交事务(commit)     ts.commit();<br />
7&gt;、事务回滚（rollback）  ts.rollback();</p>
<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="Hibernate one-to-many  association" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_one-to-many-_association%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate one-to-many  association</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate Object Persistence" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhibernate-object-persistence%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate Object Persistence</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate many-to-many实例" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fmany-to-many_example%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate many-to-many实例</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate 关联属性详解" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_association_keys%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate 关联属性详解</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Hibernate的缓存机制" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F04%2Fhibernate-two-kinds-of-cache%2F&from=http%3A%2F%2Fwww.javachen.com%2F2009%2F05%2Fhibernate_operation_1%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Hibernate的缓存机制</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>Here is no comments yet by the time  your rss reader get this, Do you want to be the first commentor? Hurry up ]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2009/05/hibernate_operation_1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.javachen.com/tag/jpa/feed/ ) in 15.59213 seconds, on Feb 6th, 2012 at 2:22 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 6th, 2012 at 3:22 am UTC -->
