【发布时间】:2011-04-16 09:18:33
【问题描述】:
我有一个包含一些数据字段的类:
class Call{
roomId
roomDisplay
roomLocation
typeId
name
staffAidId
}
现在我想在 java 中使用 hibernate 注释来映射它 但我使用的原始 sql 查询是这样的:
SELECT
c.roomId,
r.display,
r.location,
c.typeId,
c.staffAidId,
s.firstname,
s.lastname
FROM callalert c
JOIN staffmember s
LEFT JOIN roomGroup g ON g.groupId = s.roomGroupId
LEFT JOIN room r ON r.roomId = g.roomId
WHERE s.staffId = 4444 AND c.roomId = g.roomId
有没有办法映射这个 换句话说: 有没有办法将不同表中的列映射到 1 个自定义类? 该类不是 1 个表的直接表示 并且从涉及的所有表中,并非所有列都被使用
编辑
我尝试了视图解决方案:
使用上述查询创建了一个视图 然后我尝试使用 Netbeans 生成休眠类 我生成了2个类: 类 Calls 和一个可嵌入类 CallId
在网上搜索后会出现这种情况,因为 hibernate 需要一个主键,所以它自己创建了一个
如何确保只生成 1 个类? 如何为视图提供主键(一个好的主键将是基础表的主键之一)。这个怎么设置?
【问题讨论】:
标签: sql hibernate annotations hql pojo