您的位置:首页 > 其它

Hibernte之级联操作inverse、cascade

2016-04-01 17:12 423 查看
多对多

UserGroup-------------->User

inverse维护的是关系表(User_UserGroup_Relation)

cascade维护的是(User)



1.

***********************************************************************************************************************

set name="userSet"  lazy="false" inverse="false" cascade="save-update"

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserGrpMapping

        */ insert 

        into

            user_grp_mapping

            (group_name, comment_text) 

        values

            (?, ?)

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserMapping

        */ insert 

        into

            user_mapping

            (user_name, password, reg_time, login_lock, password_effective_date, user_call_list_head, role_id) 

        values

            (?, ?, ?, ?, ?, ?, ?)

Hibernate: 

    /* insert collection

        row com.pachira.psae.pojo.user.UserGrpMapping.userSet */ insert 

        into

            user_group

            (group_id, user_id) 

        values

            (?, ?)

***********************************************************************************************************************

2.

***********************************************************************************************************************

set name="userSet"  lazy="false" inverse="true" cascade="save-update"

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserGrpMapping

        */ insert 

        into

            user_grp_mapping

            (group_name, comment_text) 

        values

            (?, ?)

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserMapping

        */ insert 

        into

            user_mapping

            (user_name, password, reg_time, login_lock, password_effective_date, user_call_list_head, role_id) 

        values

            (?, ?, ?, ?, ?, ?, ?)

***********************************************************************************************************************

3.

***********************************************************************************************************************

set name="userSet"  lazy="false" inverse="false" cascade="null"

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserGrpMapping

        */ insert 

        into

            user_grp_mapping

            (group_name, comment_text) 

        values

            (?, ?)

Hibernate: 

    /* insert collection

        row com.pachira.psae.pojo.user.UserGrpMapping.userSet */ insert 

        into

            user_group

            (group_id, user_id) 

        values

            (?, ?)

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing

***********************************************************************************************************************

4.

***********************************************************************************************************************

set name="modelSet"  lazy="false" inverse="true" cascade="null"

Hibernate: 

    /* insert com.pachira.psae.pojo.user.UserGrpMapping

        */ insert 

        into

            user_grp_mapping

            (group_name, comment_text) 

        values

            (?, ?)

            (?, ?)

***********************************************************************************************************************

一对多

model-------------->modelGroup

inverse维护的是关联的外键

cascade维护的是除外键的所有属性


1.

***********************************************************************************************************************

set name="modelSet"  lazy="false" inverse="false" cascade="save-update"

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelGrpMapping

        */ insert  into

            model_grp_mapping

            (group_name, is_share, user_grp_id, comment_text) 

        values (?, ?, ?, ?)

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelMapping

        */ insert   into

            model_mapping

            (model_name, short_name, formula, deploy_state, deleted, proc_percent, user_id, last_modifier, modify_date, channel, type, group_id) 

        values  (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

Hibernate: 

    /* create one-to-many row com.pachira.psae.pojo.model.ModelGrpMapping.modelSet */ update

        model_mapping 

    set

        group_id=? 

    where

        model_id=?

***********************************************************************************************************************

2.

***********************************************************************************************************************

set name="modelSet"  lazy="false" inverse="true" cascade="save-update"

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelGrpMapping

        */ insert  into

            model_grp_mapping

            (group_name, is_share, user_grp_id, comment_text) 

        values (?, ?, ?, ?)

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelMapping

        */ insert   into

            model_mapping

            (model_name, short_name, formula, deploy_state, deleted, proc_percent, user_id, last_modifier, modify_date, channel, type, group_id) 

        values  (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

***********************************************************************************************************************

3.

***********************************************************************************************************************

set name="modelSet"  lazy="false" inverse="false" cascade="null"

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelGrpMapping

        */ insert  into

            model_grp_mapping

            (group_name, is_share, user_grp_id, comment_text) 

        values (?, ?, ?, ?)

   

Hibernate: 

    /* create one-to-many row com.pachira.psae.pojo.model.ModelGrpMapping.modelSet */ update

        model_mapping 

    set

        group_id=? 

    where

        model_id=?

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing

***********************************************************************************************************************

4.

***********************************************************************************************************************

set name="modelSet"  lazy="false" inverse="true" cascade="null"

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelGrpMapping

        */ insert  into

            model_grp_mapping

            (group_name, is_share, user_grp_id, comment_text) 

        values (?, ?, ?, ?)

***********************************************************************************************************************

在多方设置如下(不建议这么做),效果等同于1

***********************************************************************************************************************

many-to-one name="modelGrpMapping" column="group_id" lazy="false" cascade="save-update"

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelGrpMapping

        */ insert  into

            model_grp_mapping

            (group_name, is_share, user_grp_id, comment_text) 

        values (?, ?, ?, ?)

Hibernate: 

    /* insert com.pachira.psae.pojo.model.ModelMapping

        */ insert   into

            model_mapping

            (model_name, short_name, formula, deploy_state, deleted, proc_percent, user_id, last_modifier, modify_date, channel, type, group_id) 

        values  (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

Hibernate: 

    /* create one-to-many row com.pachira.psae.pojo.model.ModelGrpMapping.modelSet */ update

        model_mapping 

    set

        group_id=? 

    where

        model_id=?

***********************************************************************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: