当前位置: 首页 > 知识库问答 >
问题:

从三个表Hibernate获取部分对象

程祺
2023-03-14

我有三个表User、UserRole(联接表)和Role。我需要从角色表中获取条件库中的名称。我有sql查询,这是工作在这个场景,但想尝试使用条件。

Select firstname, lastname from user, userrole, role where user.id=userrole.userid and userrole.roleid=role.id and role.name='James';

这将返回部分对象firstname和lastname,我稍后可以将它们用作fullname。

@ManyToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)    
@JoinTable(
        name = "userrole",
        joinColumns = { @JoinColumn(name = "userid") },
        inverseJoinColumns = @JoinColumn(name = "roleid")
)
public Set<Role> getRoles() {
    return roles;
}

共有1个答案

董法
2023-03-14

使用下面给出的代码。

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from user user where user.name=:username").setParameter("username", "James");
List<User> list = query.list();
 类似资料:
  • 问题内容: K,所以我有两个表: 我想从类别中获取所有信息,并计算每个类别中的问题数(question_id)。 假设,第一个类别(计费)将有一个问题,第二个类别(安全)将有3个问题。 我已经试过了: 问题答案: 您想这样做: 在将确保没有问题类别获得与数= 0上市

  • 我正在使用hibernate 4和Spring 3。 我有5个表,每个表映射一个实体类。现在,如果我必须从1个表中选择列,我将执行以下操作: 此结果中的此值将为EmployeeEntity类型。 或者我也可以使用标准。 现在我的要求是我必须从所有5个表中得到结果。每个表中有1-2列。 早些时候,它是一个1表,所以我得到了一个实体,现在我得到了5个表的结果,所以如何在实体中映射它。 List res

  • 我的数据模型中有以下实体关系。 ERD Hibernate实体: 要求:我想用实体B的连接获取查询实体C,同时也急切地获取实体D。查询完成后,我希望如果我执行,它不应导致hibernate中的N 1查询问题。 我正在尝试以下JPQL查询: 这导致结果重复,因为与实体D交叉连接。我得到的不是一个结果,而是n个结果,其中n是实体D列表的大小。 我该如何避免这种情况?有没有办法在JPQL中不交叉连接地获

  • 问题内容: 我正在尝试在非Spring代码中获取Spring定义的Hibernate Configuration和SessionFactory对象。以下是我的applicationContext.xml文件中的定义: 码: 如果现在调用getBean(“ sessionFactory”),我将返回一个$ Proxy0对象,该对象似乎是Hibernate SessionFactory对象的代理。但这

  • 我有疑问: InvoiceItems.java:

  • 问题内容: 我正在尝试一次从三个表中检索数据。这些表如下所示: 类别 讯息 评论 我想要得到的是1条消息(因为我有一个基于id的子句),3个类别(因为有3个类别链接到消息)和2条注释(因为有2条注释链接到消息)。 我正在尝试使用以下查询来检索数据: 但是,当运行此查询时,我得到6个结果: 在我预期结果如下的地方: 只有三行,我应该能够获取所有需要的数据。这有可能吗?我做错了吗?? 问题答案: 如评