hibernate从多个表中的多个列定义类

时间:2011-04-16 09:18:34

标签: sql hibernate annotations hql pojo

我有一个包含一些数据字段的课程:

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生成hibernate类 我生成了2个类: 类Calls和Embeddable类CallId

在搜索互联网之后,这种情况发生了,因为hibernate需要一个主键,所以它自己创建了一个

如何确保只生成1个类? 如何为视图提供主键(一个好的主键将是基础表的主键之一)。我该如何设置?

1 个答案:

答案 0 :(得分:1)

如果为该查询创建数据库视图,则应该能够这样做。它可以工作,但它有一个缺点,你不能从数据库模型自动生成ddl架构。

查看此article