企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 5.1.2\. hibernate-mapping 这个元素包括一些可选的属性。`schema`和`catalog`属性, 指明了这个映射所连接(refer)的表所在的schema和/或catalog名称。 假若指定了这个属性,表名会加上所指定的schema和catalog的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。 `default-cascade`指定了未明确注明`cascade`属性的Java属性和 集合类Hibernate会采取什么样的默认级联风格。`auto-import`属性默认让我们在查询语言中可以使用 非全限定名的类名。 ``` <hibernate-mapping schema="schemaName" catalog="catalogName" default-cascade="cascade_style" default-access="field|property|ClassName" default-lazy="true|false" auto-import="true|false" package="package.name" /> ``` | ![1](img/1.png) | `schema` (可选): 数据库schema的名称。 | |:--- |:--- | | ![2](img/2.png) | `catalog` (可选): 数据库catalog的名称。 | | ![3](img/3.png) | `default-cascade` (可选 - 默认为 `none`): 默认的级联风格。 | | ![4](img/4.png) | `default-access` (可选 - 默认为 `property`): Hibernate用来访问所有属性的策略。可以通过实现`PropertyAccessor`接口 自定义。 | | ![5](img/5.png) | `default-lazy` (可选 - 默认为 `true`): 指定了未明确注明`lazy`属性的Java属性和集合类, Hibernate会采取什么样的默认加载风格。 | | ![6](img/6.png) | `auto-import` (可选 - 默认为 `true`): 指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 | | ![7](img/7.png) | `package` (可选): 指定一个包前缀,如果在映射文档中没有指定全限定的类名, 就使用这个作为包名。 | 假若你有两个持久化类,它们的非全限定名是一样的(就是两个类的名字一样,所在的包不一样--译者注), 你应该设置`auto-import="false"`。如果你把一个“import过”的名字同时对应两个类, Hibernate会抛出一个异常。 注意`hibernate-mapping` 元素允许你嵌套多个如上所示的 `&lt;class&gt;`映射。但是最好的做法(也许一些工具需要的)是一个 持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命名,例如: `Cat.hbm.xml`, `Dog.hbm.xml`,或者如果使用继承,`Animal.hbm.xml`。