📄 mapping.html
字号:
catalog="catalogName" <span class="co">(2)</span> default-cascade="cascade_style" <span class="co">(3)</span> default-access="field|property|ClassName" <span class="co">(4)</span> default-lazy="true|false" <span class="co">(5)</span> auto-import="true|false" <span class="co">(6)</span> package="package.name" <span class="co">(7)</span> /></pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left">(1)</td><td valign="top" align="left"><p> <tt class="literal">schema</tt> (可选): 数据库schema的名称。 </p></td></tr><tr><td width="5%" valign="top" align="left">(2)</td><td valign="top" align="left"><p> <tt class="literal">catalog</tt> (可选): 数据库catalog的名称。 </p></td></tr><tr><td width="5%" valign="top" align="left">(3)</td><td valign="top" align="left"><p> <tt class="literal">default-cascade</tt> (可选 - 默认为 <tt class="literal">none</tt>): 默认的级联风格。 </p></td></tr><tr><td width="5%" valign="top" align="left">(4)</td><td valign="top" align="left"><p> <tt class="literal">default-access</tt> (可选 - 默认为 <tt class="literal">property</tt>): Hibernate用来访问所有属性的策略。可以通过实现<tt class="literal">PropertyAccessor</tt>接口 自定义。 </p></td></tr><tr><td width="5%" valign="top" align="left">(5)</td><td valign="top" align="left"><p> <tt class="literal">default-lazy</tt> (可选 - 默认为 <tt class="literal">true</tt>): 指定了未明确注明<tt class="literal">lazy</tt>属性的Java属性和集合类, Hibernate会采取什么样的默认加载风格。 </p></td></tr><tr><td width="5%" valign="top" align="left">(6)</td><td valign="top" align="left"><p> <tt class="literal">auto-import</tt> (可选 - 默认为 <tt class="literal">true</tt>): 指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 </p></td></tr><tr><td width="5%" valign="top" align="left">(7)</td><td valign="top" align="left"><p> <tt class="literal">package</tt> (可选): 指定一个包前缀,如果在映射文档中没有指定全限定的类名, 就使用这个作为包名。 </p></td></tr></table></div></div><p> 假若你有两个持久化类,它们的非全限定名是一样的(就是两个类的名字一样,所在的包不一样--译者注), 你应该设置<tt class="literal">auto-import="false"</tt>。如果你把一个“import过”的名字同时对应两个类, Hibernate会抛出一个异常。 </p><p> 注意<tt class="literal">hibernate-mapping</tt> 元素允许你嵌套多个如上所示的 <tt class="literal"><class></tt>映射。但是最好的做法(也许一些工具需要的)是一个 持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命名,例如: <tt class="literal">Cat.hbm.xml</tt>, <tt class="literal">Dog.hbm.xml</tt>,或者如果使用继承,<tt class="literal">Animal.hbm.xml</tt>。 </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="mapping-declaration-class"></a>5.1.3. class</h3></div></div><div></div></div><p> 你可以使用<tt class="literal">class</tt>元素来定义一个持久化类: </p><div class="programlistingco"><pre class="programlisting"><class name="ClassName" <span class="co">(1)</span> table="tableName" <span class="co">(2)</span> discriminator-value="discriminator_value" <span class="co">(3)</span> mutable="true|false" <span class="co">(4)</span> schema="owner" <span class="co">(5)</span> catalog="catalog" <span class="co">(6)</span> proxy="ProxyInterface" <span class="co">(7)</span> dynamic-update="true|false" <span class="co">(8)</span> dynamic-insert="true|false" <span class="co">(9)</span> select-before-update="true|false" <span class="co">(10)</span> polymorphism="implicit|explicit" <span class="co">(11)</span> where="arbitrary sql where condition" <span class="co">(12)</span> persister="PersisterClass" <span class="co">(13)</span> batch-size="N" <span class="co">(14)</span> optimistic-lock="none|version|dirty|all" <span class="co">(15)</span> lazy="true|false" <span class="co">(16)</span> entity-name="EntityName" <span class="co">(17)</span> check="arbitrary sql check condition" <span class="co">(18)</span> rowid="rowid" <span class="co">(19)</span> subselect="SQL expression" <span class="co">(20)</span> abstract="true|false" <span class="co">(21)</span> node="element-name"/></pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left">(1)</td><td valign="top" align="left"><p> <tt class="literal">name</tt> (可选): 持久化类(或者接口)的Java全限定名。 如果这个属性不存在,Hibernate将假定这是一个非POJO的实体映射。 </p></td></tr><tr><td width="5%" valign="top" align="left">(2)</td><td valign="top" align="left"><p> <tt class="literal">table</tt> (可选 - 默认是类的非全限定名): 对应的数据库表名。 </p></td></tr><tr><td width="5%" valign="top" align="left">(3)</td><td valign="top" align="left"><p> <tt class="literal">discriminator-value</tt> (可选 - 默认和类名一样): 一个用于区分不同的子类的值,在多态行为时使用。它可以接受的值包括 <tt class="literal">null</tt> 和 <tt class="literal">not null</tt>。 </p></td></tr><tr><td width="5%" valign="top" align="left">(4)</td><td valign="top" align="left"><p> <tt class="literal">mutable</tt> (可选,默认值为<tt class="literal">true</tt>): 表明该类的实例是可变的或者不可变的。 </p></td></tr><tr><td width="5%" valign="top" align="left">(5)</td><td valign="top" align="left"><p> <tt class="literal">schema</tt> (可选): 覆盖在根<tt class="literal"><hibernate-mapping></tt>元素中指定的schema名字。 </p></td></tr><tr><td width="5%" valign="top" align="left">(6)</td><td valign="top" align="left"><p> <tt class="literal">catalog</tt> (可选): 覆盖在根<tt class="literal"><hibernate-mapping></tt>元素中指定的catalog名字。 </p></td></tr><tr><td width="5%" valign="top" align="left">(7)</td><td valign="top" align="left"><p> <tt class="literal">proxy</tt> (可选): 指定一个接口,在延迟装载时作为代理使用。 你可以在这里使用该类自己的名字。 </p></td></tr><tr><td width="5%" valign="top" align="left">(8)</td><td valign="top" align="left"><p> <tt class="literal">dynamic-update</tt> (可选, 默认为 <tt class="literal">false</tt>): 指定用于<tt class="literal">UPDATE</tt> 的SQL将会在运行时动态生成,并且只更新那些改变过的字段。 </p></td></tr><tr><td width="5%" valign="top" align="left">(9)</td><td valign="top" align="left"><p> <tt class="literal">dynamic-insert</tt> (可选, 默认为 <tt class="literal">false</tt>): 指定用于<tt class="literal">INSERT</tt>的 SQL 将会在运行时动态生成,并且只包含那些非空值字段。 </p></td></tr><tr><td width="5%" valign="top" align="left">(10)</td><td valign="top" align="left"><p> <tt class="literal">select-before-update</tt> (可选, 默认为 <tt class="literal">false</tt>): 指定Hibernate除非确定对象真正被修改了(如果该值为true-译注),否则<span class="emphasis"><em>不会</em></span>执行SQL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -