0

我有两个类 Domain 和 UserProfile 。它们之间的关系是一对多的。它在 UserProfile 类中定义。我有用户和域对象的名字我必须编写 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;
}
4

1 回答 1

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();
于 2013-09-14T12:11:38.193 回答