0

Domain と UserProfile の 2 つのクラスがあります。それらの間の関係は 1 対多です。これは UserProfile クラスで定義されています。ユーザーとドメイン オブジェクトの firstName があり、UserProfile オブジェクトを取得するために hql クエリを作成する必要があります。私はこのように「プロファイルとしての 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 に答える