0

UserID、LoginId、および password フィールドを持つ DLawUserMaster テーブルがあります。その中で UserId と LoginId は複合キーです。ユーザーがユーザーIDとパスワードを使用してログインしようとすると、ユーザーを検証し、ユーザーIDを取得してセッションに保存し、アプリケーションでさらに使用できるようにします。

以下のように、netbeans HQL クエリエディターでクエリを使用してユーザー ID を取得しようとしました。

  1. user.id.loginId='admin' および user.password='admin' である DLawUserMaster ユーザーから count(*) を選択します

  2. user.id.loginId='admin' および user.password='admin' である DLawUserMaster ユーザーから count(user.id.loginId) を選択します。

  3. user.id.loginId='admin' および user.password='admin' である DLawUserMaster ユーザーから user.id.userId を選択します。


長い | 長い | 長い | シャア

空白 | 空白 | 空白 | 空欄

空白は空であることを意味しますが、1 行が選択されていることを示しています。

ここにコード UserMaster.java があります

public class DLawUserMaster  implements java.io.Serializable {


 private DLawUserMasterId id;
 private String userFirstName;
 private String userMiddleName;
 private String userLastName;
 private String password;

public DLawUserMaster() {
}



public DLawUserMaster(DLawUserMasterId id, String userFirstName, String userMiddleName, String userLastName, String password, String address1, String address2, String address3, String city, String state, String pincode, String mobileNo, String stdCode, String phoneNo, String emailId, String hintQuestion, String hintAnswer, Date registrationDate, Date expiryDate, Boolean activate, Integer noOfClientAllowed, Date createdDate, Date modifiedDate) {
   this.id = id;
   this.userFirstName = userFirstName;
   this.userMiddleName = userMiddleName;
   this.userLastName = userLastName;
}

public DLawUserMasterId getId() {
    return this.id;
}

public void setId(DLawUserMasterId id) {
    this.id = id;
}
public String getUserFirstName() {
    return this.userFirstName;
}

public void setUserFirstName(String userFirstName) {
    this.userFirstName = userFirstName;
}
public String getUserMiddleName() {
    return this.userMiddleName;
}

public void setUserMiddleName(String userMiddleName) {
    this.userMiddleName = userMiddleName;
}
public String getUserLastName() {
    return this.userLastName;
}

public void setUserLastName(String userLastName) {
    this.userLastName = userLastName;
}
public String getPassword() {
    return this.password;
}

public void setPassword(String password) {
    this.password = password;
}
}

UserMasterID.java

public class DLawUserMasterId  implements java.io.Serializable {


 private long userId;
 private String loginId;

public DLawUserMasterId() {
}

public DLawUserMasterId(long userId, String loginId) {
   this.userId = userId;
   this.loginId = loginId;
}

public long getUserId() {
    return this.userId;
}

public void setUserId(long userId) {
    this.userId = userId;
}
public String getLoginId() {
    return this.loginId;
}

public void setLoginId(String loginId) {
    this.loginId = loginId;
}


public boolean equals(Object other) {
     if ( (this == other ) ) return true;
     if ( (other == null ) ) return false;
     if ( !(other instanceof DLawUserMasterId) ) return false;
     DLawUserMasterId castOther = ( DLawUserMasterId ) other; 

     return (this.getUserId()==castOther.getUserId())
&& ( (this.getLoginId()==castOther.getLoginId()) || ( this.getLoginId()!=null &&     castOther.getLoginId()!=null && this.getLoginId().equals(castOther.getLoginId()) ) );
}

public int hashCode() {
     int result = 17;

     result = 37 * result + (int) this.getUserId();
     result = 37 * result + ( getLoginId() == null ? 0 :     this.getLoginId().hashCode()      );
     return result;
} 
}

誰でもuserID値を取得するための提案をしてもらえますか? その中でcountの使い方についても。

4

1 に答える 1

0

netbeansが最初に示すこと

Long | Long | Long | Char
Blank | Blank | Blank | Blank

使用すると適切な値を返すので問題ありません

クエリq=session.createQuery(SQL_QUERY); list = q.list()

リストでは、カウントなしを返します。

次に、複合キーを使用している場合、Beanで定義されている主キークラスのオブジェクトを使用しています。

クエリによる結果が必要な場合は、DLawClientMasterクライアントからclient.id.clientIdを選択します。ここでclient.id.userId ='1'およびclient.id.clientId='1'

基準APIを使用している場合は、

Criteria criteria = session.createCriteria(DLawClientMaster.class);
criteria.add(Restrictions.eq("id.userId", client.getId().getUserId()));
criteria.setProjection(Projections.max("id.clientId"));
List list = criteria.list();

ありがとう

于 2012-09-05T07:11:23.293 に答える