0

首先很抱歉,如果我的问题表述得不是很好。

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

@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 的所有用户。例如,我有两个用户,用户 ID =1 和 =2。在“USER_ID”列的第二个表中,我只有值“2”。所以我只需要第一个表中 userId = 2 的用户。

4

1 回答 1

0

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

像这样 <sql-query name="userwith"> <return alias="user" class="User"/> SELECT user.Name AS {user.name} FROM USERS JOIN ANOTHER_TABLE another_table ON user.ID = another_table.USER_ID </sql-查询>

于 2013-04-16T18:04:41.213 回答