休眠条件:使用另一个表从一个表中选择对象

时间:2013-04-16 15:37:12

标签: sql hibernate criteria hibernate-criteria

首先抱歉,如果我的问题没有很好地制定。

我有一个简单的对象,它被映射到相应的表:

@Entity
@Table(name = "USERS")
public class User{

    @Id
    @Column(name = "USER_ID")
    @GeneratedValue
    private long userId;

    @Column(name = "NAME")
    private String name;
        //getters and setters...

在我的数据库中,我还有另一张表。此表没有任何关联对象,但它有“USER_ID”列 - 与“USERS”表中的ID相同。

所以问题是,如何使用Hibernate标准从第一个表中选择与第二个表中具有相同USER_ID的所有USER。例如,我有两个userId = 1和= 2的用户。在“USER_ID”列的第二个表中,我只有值“2”。所以我只需要第一个表中的userId = 2的用户。

1 个答案:

答案 0 :(得分:0)

您的查询是FOREIGN_KEY关系的经典示例,但正如您所说,您没有其他表的Hibernating映射模型。最好在您的用户映射文件中使用sql-query 在User对象中收集此查询结果。

像这样的东西 < sql-query name =“userwith”> < return alias =“user”class =“User”/> 选择        user.Name AS {user.name} 来自用户 加入另一个__另一个     ON user.ID = another_table.USER_ID < / SQL查询>