hibernate经验谈

博客介绍了Hibernate相关知识,包括设计Object属性时数字用对象类型避免数据库插入默认值;给出自身“一对多”和“多对一”的hb映射文件示例;提到持久化实例和分离实例的持久化方式;还指出设计Object的equals和hashCode方法要用业务键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。设计Object时的属性时,对于一些数字,要用对象类型,不要用基本类型,比如用Long,不要用long,否则如果插入记录时,此属性为空时,数据库中会自动添加默认值0

2。自身的“一对多”和“多对一”hb映射文件。Area类的属性有Area parent,Set<Area>children

<hibernate-mapping>
    <class name="Area" table="AREA">
        <id name="id" column="ID" type="long">
            <generator class="native">
                <param name="sequence">area_sequence</param>
                <param name="parameters">START WITH 1000</param>
            </generator>
        </id>
        <version name="version" column="VERSION" type="long"/>
        <property name="name" type="string">
            <column name="NAME" not-null="true" length="100" unique-key="UK_AREA"/>
        </property>
        <many-to-one name="parent" class="Area">
            <column name="PARENT_ID"/>
        </many-to-one>
        <set name="children" lazy="true" inverse="true" cascade="all-delete-orphan">
            <key column="PARENT_ID"/>
            <one-to-many class="Area"/>
        </set>
    </class>

3.持久化实例如果发生改变,hb会在把变化commit时持久化到数据库,因为hb有脏数据自动检测功能;分离实例必须用update才能持久化到数据库

4。设计Object的equals和hashCode方法,用业务键,即hb的映射文件中的unique-key属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值