1

プロジェクトにこれらの POJO クラスがあります。

 public class MerchantChainUser extends com.avanza.ni.common.dto.AbstractDTO
    implements java.io.Serializable {

private long chainId;
private CompositePK compositePK;


public MerchantChainUser() {

}

public void setChainId(long chainId) {
    this.chainId = chainId;
}
public long getChainId() {
    return chainId;
}

public void setCompositePK(CompositePK compositePK) {
    this.compositePK = compositePK;
}

public CompositePK getCompositePK() {
    return compositePK;
}
}

AND    

public class CompositePK implements Serializable {

private long merchantId;
private long userId;

public void setMerchantId(long merchantId) {
    this.merchantId = merchantId;
}

public long getMerchantId() {
    return merchantId;
}

public void setUserId(long userId) {
    this.userId = userId;
}

public long getUserId() {
    return userId;
}
 }

hbm.xml ファイルMerchantUserChain

 <hibernate-mapping>
<class name="com.avanza.ni.portal.dto.MerchantChainUser" table="MERCHANT_CHAIN_USER">
    <composite-id name="compositePK">
        <key-property name="merchantId" type="long" column="MERCHANT_ID"></key-property>
        <key-property name="userId" type="long" column="MERCHANT_USER_ID"></key-property>
    </composite-id>
    <property name="chainId" type="long">
        <column name="MERCHANT_CHAIN_ID" length="38" />
    </property>
</class>

今私が望んでいたのは、単に を使用してテーブルからデータを読み取らなければならないことMERCHANT_USER_IDです。テーブルからデータ全体を取得することはできますが、条件を次のように設定したいと考えていますOnly give me those row that MERCHANT_USER_ID is specific。データ基準の書き方がわかりませんでした。

4

2 に答える 2

2

コメントを入れた回答が削除されたので、ここに投稿します:D

Criteria crit = session.createCriteria(MerchantChainUser.class)
.add(Restrictions.eq("compositePK.userId", userId));

またはhqlを使用

session.createQuery("from MerchantChainUser where compositePK.userId = :userid").setParameter("userid",userid);
于 2013-07-24T09:17:54.660 に答える
0

試すことができますか:

Criteria crit = session.createCriteria(MerchantChainUser.class);
crit.add(Restrictions.eq("compositePK.merchantId", 42));
crit.add(Restrictions.eq("compositePK.userId", 43));
crit.setMaxResults(10);
List result = crit.list();

ヴィニット

于 2013-07-24T08:36:16.023 に答える