2010-05-31 11 views
1

simple question concernant HQL (langage de requête Hibernate)question sur requête de base de données à l'aide hiverne en Java avec annotations

donc j'ai la classe d'utilisateur, qui peut contenir une liste de projets, comment puis-je prendre ce sur la base de données en fonction sur un nom d'utilisateur,

voilà comment je prends mon utilisateur

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

mais je veux prendre la liste des projets

ici est le liste de projets dans la classe YFUser (ma classe d'utilisateurs);

comment pourrais-je interroger la base de données pour obtenir cette liste de projets

@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>(); 

Répondre

1
List<Project> projects = (List<Project>) session.createQuery( 
     "select u.projects FROM YFUser u where u.username = :username") 
     .setParameter("username", name).list(); 
0

vient de faire le changement suivant dans votre code.

Liste <> user = (YFUser) session.createQuery ( "select u DE YFUser u où u.username =: nom d'utilisateur") .setParameter ("nom d'utilisateur", nom). liste();