我已经完成了一件小事情:

我在数据库中有两个表是相关的-User和UserReference。

在UserReference中,我有一个字段userid,它与User中的id有关。

我有向联接左查询mysql:

"FROM User as user left join fetch user.userReferences WHERE login='"+login+"' or email='"+login+"' AND password = '" +password+ "'" ;


查询还可以,我得到结果。

我将结果发送到控制器,将其更改为list:query.list();

在控制器中,我接收结果并将其推入用户列表。

从用户列表中,我可以从表User中获取信息

在用户表中有:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
public Set<UserReference> getUserReferences() {
    return this.userReferences;
}


现在-我想从用户列表中的表UserReference获取数据,因为我的查询具有JOIN。

我该怎么做?

我正在尝试做这样的事情:

List<UserReference> userReference = (List<UserReference>) user.get(0).getUserReferences();
            System.out.println(userReference.get(0).getAge());


但这是行不通的。

你能帮助我吗 ?

最佳答案

您不能将Set强制转换为列表,而要遍历Set以获得userRefences。

10-06 07:27