您的位置:首页 > 其它

hibernate使用摘要(many-to-many N+1问题)

2016-07-20 11:25 441 查看
1 hibernate的N+1问题

  1.1 表1配置

@ManyToMany(mappedBy = "departments", fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)


  1.2 表2配置

@ManyToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)


注意 Fetch需要使用subselect。 不能使用其它Join或者select。

subselect使用后,转换的类似语句为:

    select

        employees0_.departmentId as departme2_0_1_,

        employees0_.employeeId as employee1_2_1_,

        qyhemploye1_.id as id1_1_0_,

        qyhemploye1_.account as account2_1_0_,

        qyhemploye1_.gender as gender3_1_0_,

        qyhemploye1_.mail as mail4_1_0_,

        qyhemploye1_.name as name5_1_0_,

        qyhemploye1_.position as position6_1_0_,

        qyhemploye1_.telephone as telephon7_1_0_,

        qyhemploye1_.wxHao as wxHao8_1_0_ 

    from

        qyh_employee_department employees0_ 

    inner join

        qyh_employee qyhemploye1_ 

            on employees0_.employeeId=qyhemploye1_.id 

    where

        employees0_.departmentId in (

            select

                qyhdepartm0_.id 

            from

                qyh_department qyhdepartm0_ 

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