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">
未完待续……
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">
未完待续……
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}