2010-10-11 43 views
0

嗨 是新的,冬眠让我疯狂的全职。 我hv 2表一对一映射。当我只加入这两个这两个然后休眠不映射,当我连接table1与其他table3然后它给我很好的映射结果。hibernate没有映射bean,返回对象列表

Bean1

private int id ; 
private BlessUser blessUser ; 
private SnsAuthenticator snsAuth ; 
public void setSnsAuth(SnsAuthenticator snsAuth) { 
    snsAuth.setSnsUserId(getId()); 
    this.snsAuth = snsAuth; 
} 

HBM文件

<one-to-one name="snsAuth" class="com.utilami.model.SnsAuthenticator" property-ref="snsUserId" 
    cascade="all"></one-to-one> 

Bean2

private int id; 
private int snsUserId; 
private String key; 
private String value; 

HBM文件 正常HBM ...

执行LIK:

Session session = Utility.getSessionFactory().openSession(); 
    Query query = session.createQuery("from SnsUser su join su.snsAuth sa where su.blessUserId =1"); 
    List list = query.list(); 

此查询工作提前细

String query = "from BlessUser bu join fetch bu.snsUser su where bu.id = su.blessUserId and bu." + "UserName" + " = " + "'qw'"; 

千恩万谢。 thx

回答

0
from SnsUser su join fetch su.snsAuth sa where su.blessUserId = :id

关键字fetch丢失。