【发布时间】:2011-09-14 02:25:55
【问题描述】:
我有一个多对一的关系,其中一个 MessageContents 对象有一组 Messages,每个 Message 都有一个 MessageContents 的外键。
我有以下疑问:
String sqlQuery = "SELECT " +
" {msg.*}, "+
" {msc.*} "+
"FROM analyticsintegrationservices.Messages AS msg " +
"LEFT OUTER JOIN analyticsintegrationservices.message_contents AS msc " +
" ON msg.content_key = msc.unique_key " +
"WHERE msg.sequence_received < 10";
当我查询它时,我希望 hibernate 将结果集映射到 Messages 对象列表。 当我尝试以下代码时,我得到了 MessageContents 的结果集:
Query query = session.createSQLQuery( sqlQuery )
.addEntity( "msc", MessageContents.class )
.addJoin( "msg", "msc.message" )
.addJoin( "msc", "msg.messageContents" );
query.setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY );
//query.list() returns a list of MessageContents.
但是,当我运行以下代码时,出现异常“org.hibernate.type.SetType cannot be cast to org.hibernate.type.EntityType”
Query query = session.createSQLQuery( sqlQuery )
.addEntity( "msg",Messages.class )
.addJoin( "msc","msg.messageContents" )
.addJoin( "msg", "msc.message" );
query.setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY );
// org.hibernate.type.SetType cannot be cast to org.hibernate.type.EntityType
逃跑发生在线路上
.addJoin( "msg", "msc.message" );
如何使用 sqlQuery 获取消息列表?
【问题讨论】:
标签: java sql hibernate hibernate-mapping