源代码是:System.out.println(member.getRole().getRoleName());以下是输出的SQL语句:
Hibernate: 
    select
        trole0_.roleid as roleid0_0_,
        trole0_.rolename as rolename0_0_ 
    from
        t_role trole0_ 
    where
        trole0_.roleid=?
Hibernate: 
    select
        members0_.role_id as role10_1_,
        members0_.memberid as memberid1_,
        members0_.memberid as memberid1_0_,
        members0_.membername as membername1_0_,
        members0_.memberpwd as memberpwd1_0_,
        members0_.nickname as nickname1_0_,
        members0_.sex as sex1_0_,
        members0_.birthday as birthday1_0_,
        members0_.underwrite as underwrite1_0_,
        members0_.memberhead as memberhead1_0_,
        members0_.state as state1_0_,
        members0_.role_id as role10_1_0_ 
    from
        t_member members0_ 
    where
        members0_.role_id=?之前已经通过SQL查询得到一个member了,本来根据这个member的role_id去role表查询对应的rolename就行了。
可是为什么查询完了rolename又再来一句select * from t_member as members0_ where member0_.role_id=?(就是上面第二个“Hibernate:”后面的那段SQL语句)