我有两个类Domain和UserProfile。它们之间的关系是一对多的。它在UserProfile Class中定义。我有firstName的用户和域对象我必须编写hql查询来检索UserProfile对象。 我是这样创造的 “从UserProfile作为配置文件,其中profile.domain ='”+ domain +“'和profile.firstName ='”+ firstName +“'”。但它没有用。
任何人都可以告诉我应该如何查询。
@Entity
@Table(name="TBL_STD_DOMAIN")
public class Domain implements Serializable {
@Id
@GeneratedValue
@Column(name ="FLD_DOMAIN_ID")
private Long domainId;
@Column(name = "FLD_DOMAIN_NAME")
private String domainName;
}
@Entity
@Table(name="TBL_STD_USERPROFILE")
public class UserProfile {
@Id
@GeneratedValue
@Column(name = "FLD_USER_ID")
private Long userId;
@Column(name = "FLD_First_Name")
private FirstName firstName;
@ManyToOne
private Domain domain;
}
答案 0 :(得分:1)
永远不要使用字符串连接来将参数传递给查询。使用查询参数(命名,最好):
String hql =
"select u from UserProfile u"
+ " where u.firstName = :theFirstName"
+ " and u.domain = :theDomain";
return session.createQuery(hql)
.setParameter("theFirstName", firstName)
.setParameter("theDomain", domain)
.list();