关于hibernate的使用问题

      技术篇 2005-11-24 14:52
hibernte 2005-11-21
livn 发表在 java社区
发表主题 | 发表回复 | 刷新
--------------------------------------------------------------------------------

hibernate访问持久化类的策略

在对象-关系映射文件中,<property>元素的access属性用于指定Hibernate访问持久化类的属性发方式.它可以有两个选值.
property:这个是默认值,表明Hibernate通过相应的setXXX()和getXXX()方法类访问类的属性.这个是优先推荐的方式,为持久化类的每个属性提供setXXX()和getXXX()方法,可以更灵活的封装持久化,提高域模型的透明性.
field:表明Hibernate运用Java反射机制直接访问类的属性.例如,如果Customer类没有为name属性提供setName()和getName()方法,就可以把name属性设为field,使Hibernate能直接访问name属性:<property name="name" access="field">
如果配置为:
<property name="sex" access="field">
<column name="sex" not-null="true">
</property>

Hibernate生成动态SQL语句的系统开销(如中用CPU的世间和占用的内存)很小,因此不会影响应用的运行性能.如果表中包含许多字段,建议把dynamic-inset属性和dynamic-update属性都设为true.这样,在insert和update语句中就只包含需要插入或更新的字段,这可以节省数据库执行SQL语句的世间,从而提高应用的运行性能.

hibernate中,在建立多对一关联时,如果要级联保存和更新,则要将cascade设置为"save-update",如:
<many-to-one name="customer" column="customer_id" class="mypack.Customer" cascade="save-update" not-null="ture">

未完待续……
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}