﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Sun River-随笔分类-Hibernate</title><link>http://www.blogjava.net/SunRiver/category/17336.html</link><description>Topics about Java EE, XML,AJAX,SOA,OSGi,DB, .NET etc.</description><language>zh-cn</language><lastBuildDate>Sat, 16 Jun 2007 17:37:35 GMT</lastBuildDate><pubDate>Sat, 16 Jun 2007 17:37:35 GMT</pubDate><ttl>60</ttl><item><title>Hibernate Questions</title><link>http://www.blogjava.net/SunRiver/archive/2007/06/15/124507.html</link><dc:creator>Sun River</dc:creator><author>Sun River</author><pubDate>Fri, 15 Jun 2007 07:11:00 GMT</pubDate><guid>http://www.blogjava.net/SunRiver/archive/2007/06/15/124507.html</guid><description><![CDATA[---How do you call a state of an entity object that is never persisted and not associated with any Session? <br>&nbsp;A: transient <br>---Transient instances may be made persistent by calling which of the Session method (Choose all that apply)? <br>&nbsp;A: Save, Update, Persist, Write, SaveOrUpdate.<br>&nbsp; Transient instances may be made persistent by calling save, persist or saveOrUpdate. There is no such method like write and update - updates the persistent instance with the identifier of the given detached instance not transient.<br>---Is there a difference between<br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=java_type>Pet</span><span class=java_plain> pet </span><span class=java_operator>=</span><span class=java_plain> </span><span class=java_separator>(</span><span class=java_type>Pet</span><span class=java_separator>)</span><span class=java_plain> session</span><span class=java_separator>.</span><span class=java_plain>get</span><span class=java_separator>(</span><span class=java_type>Pet</span><span class=java_separator>.</span><span class=java_keyword>class</span><span class=java_separator>,</span><span class=java_plain> petId</span><span class=java_separator>);</span><span class=java_plain> <br></span></code></span>and<br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=java_type>Pet</span><span class=java_plain> pet </span><span class=java_operator>=</span><span class=java_plain> </span><span class=java_separator>(</span><span class=java_type>Pet</span><span class=java_separator>)</span><span class=java_plain> session</span><span class=java_separator>.</span><span class=java_plain>load</span><span class=java_separator>(</span><span class=java_type>Pet</span><span class=java_separator>.</span><span class=java_keyword>class</span><span class=java_separator>,</span><span class=java_plain> petId</span><span class=java_separator>);</span><span class=java_plain> <br></span></code></span>? <br>A:&nbsp; There is a difference - if session.load can't find the object in the cache or database it throws an exception, while session.get just returns null.&nbsp;<br>---Which of the following LockMode always increments version for versioned entities.<br>&nbsp;
<table cellPadding=0 width="23%" border=0>
    <tbody>
        <tr>
            <td width="17%">
            <p align=center></p>
            </td>
            <td width="12%">
            <p>&nbsp;</p>
            </td>
            <td width="64%">
            <p><span>READ </span></p>
            </td>
        </tr>
        <tr>
            <td width="17%">
            <p align=center></p>
            </td>
            <td width="12%">
            <p>&nbsp;</p>
            </td>
            <td width="64%">
            <p><span>WRITE </span></p>
            </td>
        </tr>
        <tr>
            <td width="17%">
            <p align=center></p>
            </td>
            <td width="12%">
            <p><span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">&nbsp;+</v:shapetype></span></p>
            </td>
            <td width="64%">
            <p><span>FORCE </span></p>
            </td>
        </tr>
        <tr>
            <td width="17%">
            <p align=center></p>
            </td>
            <td width="12%">
            <p>&nbsp;</p>
            </td>
            <td width="64%">
            <p><span>UPGRADE </span></p>
            </td>
        </tr>
        <tr>
            <td width="17%">
            <p align=center></p>
            </td>
            <td width="12%">
            <p>&nbsp;</p>
            </td>
            <td width="64%">
            <p><span>INCREMENT</span></p>
            </td>
        </tr>
    </tbody>
</table>
<br>---&nbsp;<span>What kind of hibernate inheritance mapping strategies represents the hibernate mapping file (Person.hbm.xml)?<br><br></span><span><span><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) -->&lt;</span></span><span><span>hibernate-mapping</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>class</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>name</span></span><span><span>=</span></span><span><span>"Person"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>table</span></span><span><span>=</span></span><span><span>"PERSON"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>id</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>name</span></span><span><span>=</span></span><span><span>"id"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>column</span></span><span><span>=</span></span><span><span>"id"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>type</span></span><span><span>=</span></span><span><span>"long"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>generator</span></span><span><span> </span></span><span><span>class</span></span><span><span>=</span></span><span><span>"increment"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;/</span></span><span><span>id</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>property</span></span><span><span> </span></span><span><span>name</span></span><span><span>=</span></span><span><span>"name"</span></span><span><span> </span></span><span><span>column</span></span><span><span>=</span></span><span><span>"name"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>joined-subclass</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>name</span></span><span><span>=</span></span><span><span>"Worker"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>table</span></span><span><span>=</span></span><span><span>"WORKER"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>key</span></span><span><span> </span></span><span><span>column</span></span><span><span>=</span></span><span><span>"id"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>property</span></span><span><span> </span></span><span><span>name</span></span><span><span>=</span></span><span><span>"salary"</span></span><span><span> </span></span><span><span>column</span></span><span><span>=</span></span><span><span>"salary"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;/</span></span><span><span>joined-subclass</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>joined-subclass</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>name</span></span><span><span>=</span></span><span><span>"Student"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>table</span></span><span><span>=</span></span><span><span>"STUDENT"</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>key</span></span><span><span> </span></span><span><span>column</span></span><span><span>=</span></span><span><span>"id"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;</span></span><span><span>property</span></span><span><span> </span></span><span><span>name</span></span><span><span>=</span></span><span><span>"grade"</span></span><span><span> </span></span><span><span>column</span></span><span><span>=</span></span><span><span>"salary"</span></span><span><span>/&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;/</span></span><span><span>joined-subclass</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;</span></span><span><span>&lt;/</span></span><span><span>class</span></span><span><span>&gt;</span></span><span><span> </span></span><span><br></span><span><span>&lt;/</span></span><span><span>hibernate-mapping</span></span><span><span>&gt;</span></span>
<p><span>&nbsp;</span></p>
<table cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>Table per subclass </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>Table per class hierarchy </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>Table per concrete class </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>implicit polymorphism </span></p>
            </td>
        </tr>
    </tbody>
</table>
<br>---Assume that you want to see what SQL queries are used by Hibernate during the execution of the HQL commands. Fill the gap in order to enable the underlaying SQL commands logging.<br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>property</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"__<font face="Times New Roman">show_sql </font>___"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain>true</span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>property</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>---&nbsp;<span>Given:<br></span><span><span><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) -->@</span></span><span><span>Entity</span></span><span><span> </span></span><span><br></span><span><span>public</span></span><span><span> </span></span><span><span>class</span></span><span><span> </span></span><span><span>Foo</span></span><span><span> </span></span><span><span>{</span></span><span><span> </span></span><span><br><span>&nbsp;&nbsp;&nbsp;@</span><span>Id</span><span> </span><br><span>&nbsp;&nbsp;&nbsp;</span></span><span><span>private</span></span><span><span> </span></span><span><span>int</span></span><span><span> id</span></span><span><span>;</span></span><span><br><span>&nbsp;&nbsp;&nbsp;</span><span>....</span><span> </span><br><span>}</span><span> </span><br></span><span><br>Choose correct statement.</span>
<table cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>It's a valid example of the @Id annotation usage. </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>It's not valid as @Id should be associated with a getter method (<em>getId()</em>) not a field. </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>It's not valid as @Id should be associated with both a field and a getter (<em>getId()</em>) method. </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>It's not valid as @Id should be associated with both a field and a setter (<em>setId()</em>) method. </span></p>
            </td>
        </tr>
    </tbody>
</table>
<p>---Hibernate provides <span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>native</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> </span></code></span>inheritance strategy indicating that we want to use native SQL inheritance mechanism.&nbsp;(F)&nbsp;</p>
SQL does not provide inheritance - that is one of the Object/Relation mismatches.<br>---Object Relational Mapping of hibernate is used to select, insert, update and delete the records form the underlying table. (T)<br>---Consider the following snippet:<br><br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>set</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"foos"</span><span class=xml_plain> </span><span class=xml_attribute_name>______</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"joinPoint"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>key</span><span class=xml_plain> </span><span class=xml_attribute_name>column</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"keyCol"</span><span class=xml_plain> </span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>many-to-many</span><span class=xml_plain> </span><span class=xml_attribute_name>class</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"Foo"</span><span class=xml_plain> </span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br></span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>set</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> </span></code></span><br>Fill the gap in order to make the snippet above valid. <br>A:&nbsp;<span>table</span>
<p><span>Many-to-many relationships requires setting the name of the table used to perform the join.</span></p>
---Hibernate doesn't provide its own connection pooling facility i.e. you have to use some third parties pooling implementation like DBCP.(F)<br>&nbsp;&nbsp; EX: Hibernate provides its own internal connection pooling facility. However the latter is intended to be used during a development phase - third party solutions are recommended to be used in the production. <br>---Collection can be used as a key type for a Hibernate map.(F)<br>Ex: Keys of Hibernate maps can be of any type (including composite type) except the collection types. <br>---Hibernate provides its own connection pooling facility. The latter is recommended to be used in the production instead of the third parties pooling implementation like DBCP.<br>The last sentence is true. (F)<br>Hibernate provides its own internal connection pooling facility. However the latter is intended to be used during a development phase - third party solutions are recommended to be used in the production. <br>---How many table(s) in a database represents the hibernate mapping file (Person.hbm.xml)?<br><br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>hibernate-mapping</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>class</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"Person"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>id</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"id"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>generator</span><span class=xml_plain> </span><span class=xml_attribute_name>class</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"increment"</span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>id</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>discriminator</span><span class=xml_plain> </span><span class=xml_attribute_name>column</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"PERSON_TYPE"</span><span class=xml_plain> </span><span class=xml_attribute_name>type</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"string"</span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>property</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"name"</span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>subclass</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"Worker"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>property</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"salary"</span><span class=xml_plain> </span><span class=xml_attribute_name>column</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"SALARY"</span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>subclass</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>subclass</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"Student"</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;</span><span class=xml_tag_name>property</span><span class=xml_plain> </span><span class=xml_attribute_name>name</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"grade"</span><span class=xml_plain> </span><span class=xml_attribute_name>column</span><span class=xml_tag_symbols>=</span><span class=xml_attribute_value>"GRADE"</span><span class=xml_tag_symbols>/&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>subclass</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br>&nbsp;&nbsp;&nbsp;</span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>class</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain> <br></span><span class=xml_tag_symbols>&lt;/</span><span class=xml_tag_name>hibernate-mapping</span><span class=xml_tag_symbols>&gt;</span><span class=xml_plain>&nbsp;<br>&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td>
            <p><span>One table (PERSON) (T)</span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p><span>Three tables (PERSON, WORKER, STUDENT) </span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p><span>The quantity of tables depends of the type of database to which hibernate is connected </span></p>
            </td>
        </tr>
    </tbody>
</table>
<br>Ex:<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">The mapping file represents the table per class hierarchy inheritance strategy and there is only one table for class hierarchy.</span></span></code></span><br>---Is it possible using annotations to declare readable name of a foreign key constraint in joined inheritance type ? (T)<br>---Consider the following code:<br><br><span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=java_type>Session</span><span class=java_plain> session</span><span class=java_separator>;</span><span class=java_plain> <br></span><span class=java_comment>// initialize the Session object properly <br>// for example using sessionFactory.openSession() <br>// ... <br></span><span class=java_type>PersistedEntity</span><span class=java_plain> entity </span><span class=java_operator>=</span><span class=java_plain> session</span><span class=java_separator>.</span><span class=java_plain>get</span><span class=java_separator>(</span><span class=java_type>PersistedEntity</span><span class=java_separator>.</span><span class=java_keyword>class</span><span class=java_separator>,</span><span class=java_plain> </span><span class=java_keyword>new</span><span class=java_plain> </span><span class=java_type>Integer</span><span class=java_separator>(</span><span class=java_literal>1</span><span class=java_separator>));</span><span class=java_plain> <br><br>entity</span><span class=java_separator>.</span><span class=java_plain>setValue</span><span class=java_separator>(</span><span class=java_literal>"New Value"</span><span class=java_separator>);</span><span class=java_plain> <br><br>session</span><span class=java_separator>.</span><span class=java_plain>saveOrUpdate</span><span class=java_separator>(</span><span class=java_plain>entity</span><span class=java_separator>);</span><span class=java_plain> <br>session</span><span class=java_separator>.</span><span class=java_plain>close</span><span class=java_separator>();</span><span class=java_plain> <br></span></code></span><br>If there is record in database for class PersistedEntity with ID of 1, the changes to the property 'value' will be correctly saved in the database. (F)<br>&nbsp; Ex: The Hibernate framework has already associated the id 1 with the entity. When you try to saveOrUpdate it, it will complain that the object already exist in the session by throwing an HibernateException.<br>---Which of the following scopes of identity are defined in Hibernate? (all true)<br>&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td>
            <p><span>No identity scope(def) : a database row can be represented as two java objects ..this is not supported as two objects can modify a record...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
            </td>
        </tr>
        <tr>
            <td>
            <p><span>Transacion scoped identity:In the context of a transaction a single object instance that represents a database row.<br>Allows some caching to be done at transaction level. </span></p>
            </td>
        </tr>
        <tr>
            <td width="95%">
            <p><span>process scoped identity :one instance per row in whole jvm.</span></p>
            </td>
        </tr>
    </tbody>
</table>
</span></code></span><br>---Select all valid Hibernate queries. <br>
<table class=text width="100%">
    <tbody>
        <tr>
            <td width="3%">
            <div align=center><img src="http://javablackbelt.com/imgs/icons/box.gif" align=baseline> </div>
            </td>
            <td width="2%"><img src="http://javablackbelt.com/imgs/correct_blue.gif" align=baseline> </td>
            <td class=body style="COLOR: black; BORDER-BOTTOM: #999 1px dotted"><span><code>select emp from Employee emp</code></span> </td>
        </tr>
        <tr>
            <td width="3%">
            <div align=center><img src="http://javablackbelt.com/imgs/icons/box.gif" align=baseline> </div>
            </td>
            <td width="2%"><img src="http://javablackbelt.com/imgs/correct_blue.gif" align=baseline> </td>
            <td class=body style="COLOR: black; BORDER-BOTTOM: #999 1px dotted"><span><code>select emp.id from Employee emp where exists ( from Education where name like 'Foo' and emp.id = employee.id )</code></span> </td>
        </tr>
        <tr>
            <td width="3%">
            <div align=center><img src="http://javablackbelt.com/imgs/icons/box.gif" align=baseline> </div>
            </td>
            <td width="2%"><img src="http://javablackbelt.com/imgs/correct_blue.gif" align=baseline> </td>
            <td class=body style="COLOR: black; BORDER-BOTTOM: #999 1px dotted"><span><code>select emp.id from Employee emp where exists ( from Education edu where edu.name like 'Foo' and emp.id = employee.id )</code></span> </td>
        </tr>
        <tr>
            <td width="3%">
            <div align=center><img src="http://javablackbelt.com/imgs/icons/box.gif" align=baseline> </div>
            </td>
            <td width="2%">&nbsp; </td>
            <td class=body style="COLOR: black; BORDER-BOTTOM: #999 1px dotted"><span><code>select * from Employee as emp where exists ( from Education as edu where edu.name like 'Foo' and emp.id = employee.id )</code></span> </td>
        </tr>
        <tr>
            <td width="3%">
            <div align=center><img src="http://javablackbelt.com/imgs/icons/box.gif" align=baseline> </div>
            </td>
            <td width="2%"><img src="http://javablackbelt.com/imgs/correct_blue.gif" align=baseline> </td>
            <td class=body style="COLOR: black" width="95%"><span><code>from Employee as emp where exists ( from Education where name like 'Foo' and emp.id = employee.id )</code></span> </td>
        </tr>
    </tbody>
</table>
<br>
<table class=text width="100%">
    <tbody>
        <tr>
            <td style="COLOR: #6d6d6d" colSpan=3>explanation </td>
        </tr>
        <tr>
            <td style="COLOR: black" colSpan=3>The use of <span><code>select *</code></span> is not allowed in HQL. As an alternative you can leave out <span><code>select *</code></span> or use (in this case) <span><code>select emp</code></span> . </td>
        </tr>
    </tbody>
</table>
<br>---In Hibernate which of the following properties of persistent class mapping have to be added (separately) to enable optimistic locking? (Choose all that apply)&nbsp;<br>&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>&lt;timestamp&gt; </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>&lt;lock&gt; </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>&lt;optimistic-locking&gt; </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td width="95%">
            <p><span>&lt;version&gt; </span></p>
            </td>
        </tr>
    </tbody>
</table>
Ex::Optimistic locking is enabled when you add a &lt;version&gt; or a &lt;timestamp&gt; property to a persistent class mapping.<br>---Select the right lock levels that may be acquired by Hibernate.&nbsp;&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>LockMode.WRITE </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>LockMode.READ </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>LockMode.READ_WRITE </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>LockMode.UPGRADE </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td>
            <p><span>LockMode.UPGRADE_NOWAIT </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td width="95%">
            <p><span>LockMode.NONE </span></p>
            </td>
        </tr>
    </tbody>
</table>
There is no LockMode.READ_WRITE.<br>---By default, Hibernate works in the autocommit mode i.e. starts and commits the transaction after each operation like load or save. (F)<br>Ex:You have to flush the session or commit the transaction explicitly. <br>---One of the Hibernate supported inheritance mapping strategies is <strong>table per class hierarchy</strong> (An entire class hierarchy can be mapped to a single table).<br>Disadvantage of the strategy is that columns for properties declared by subclasses must be declared to be nullable. (T)<br>---What's the state of a newly created object?&nbsp;&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td width="1%">
            <p>+</p>
            </td>
            <td>
            <p><span>Transient. </span></p>
            </td>
        </tr>
        <tr>
            <td width="1%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>Persistent. </span></p>
            </td>
        </tr>
        <tr>
            <td width="1%">
            <p>&nbsp;</p>
            </td>
            <td>
            <p><span>Detached. </span></p>
            </td>
        </tr>
    </tbody>
</table>
Ex: Objects created with a new operator are transient (are not associated with a database). <br>---Which is default cache service in Hibernate 3?&nbsp;&nbsp;
<table cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td width="2%">
            <p>+</p>
            </td>
            <td width="14%">
            <p><span>EHCache </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td width="14%">
            <p><span>OSCache </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td width="14%">
            <p><span>TreeCache </span></p>
            </td>
        </tr>
        <tr>
            <td width="2%">
            <p>&nbsp;</p>
            </td>
            <td width="14%">
            <p><span>SwarmCache </span></p>
            </td>
        </tr>
    </tbody>
</table>
Default cache service in Hibernate 3 is EHCache <br>---Assume, that U have two persistent classes with the same <strong>unqualified</strong> name, for example <span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=java_plain>com</span><span class=java_separator>.</span><span class=java_plain>jbb</span><span class=java_separator>.</span><span class=java_plain>JBB <br></span></code></span>and <span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --><span class=java_plain>org</span><span class=java_separator>.</span><span class=java_plain>jbb</span><span class=java_separator>.</span><span class=java_plain>JBB <br></span></code></span>.Hibernate will throw an exception if you attempt to assign two classes to the same unqualified name when &nbsp;<span><code><!-- null : generated by JHighlight v1.0rc (http://jhighlight.dev.java.net) --> <span class=java_plain>auto</span><span class=java_operator>-</span><span class=java_keyword>import</span><span class=java_plain> <br></span></code></span>attribute set to "false". <br>(F)<br>If you have two persistent classes with the same (unqualified) name, you should set auto-import="false". Hibernate will throw an exception if you attempt to assign two classes to the same "imported" name 
<img src ="http://www.blogjava.net/SunRiver/aggbug/124507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/SunRiver/" target="_blank">Sun River</a> 2007-06-15 15:11 <a href="http://www.blogjava.net/SunRiver/archive/2007/06/15/124507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>