简体   繁体   English

在带有注释的Java中使用Hibernate进行数据库查询的问题

[英]question on database query using hibernate in java with annotations

simple question regarding HQL(Hibernate query language) 有关HQL(休眠查询语言)的简单问题

so i have user class , that can hold a list of Projects, how do i take this out of the database depending on a username, 所以我有一个用户类,可以容纳一个项目列表,如何根据用户名将其从数据库中取出,

this is how i take out my user 这就是我删除用户的方式

 String username = "stephen";
 YFUser user = (YFUser) session.createQuery(
      "select u FROM YFUser u where u.username = :username")
      .setParameter("username", name).uniqueResult();

but i want to take out the list of projects 但我想拿出项目清单

here is the projects list within the class YFUser(my user class); 这是类YFUser(我的用户类)中的项目列表;

how would i query the database to get this list of projects 我将如何查询数据库以获取此项目列表

@Entity
@Table(name = "yf_user_table")
public class YFUser implements Serializable,ILightEntity {

.........
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JoinTable(name = "YFUSER_JOIN_PROJECT", joinColumns = { 
        @JoinColumn(name = "user_id") }, inverseJoinColumns = { 
        @JoinColumn(name = "project_id") })
private List<Project> projects = new ArrayList<Project>();
List<Project> projects = (List<Project>) session.createQuery( 
      "select u.projects FROM YFUser u where u.username = :username") 
      .setParameter("username", name).list(); 

Just made the following change in your code. 只需对代码进行以下更改。

List <> user= (YFUser) session.createQuery( "select u FROM YFUser u where u.username = :username") .setParameter("username", name). 列表<> user =(YFUser)session.createQuery(“从YFUser中选择u,其中u.username =:username”).setParameter(“ username”,name)。 list() ; list() ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM