-2

私は休止状態が初めてで、テーブルは次のとおりです。

Tb_User

  • ユーザー ID (PK)
  • ユーザー名
  • ユーザーの姓
  • ユーザーログイン
  • ユーザーパスワード

Tb_Order

  • オーダー ID (PK)
  • UserId (論理 FK)
  • 注文日
  • 注文備考

私の Dao クラスの機能:

public List<TbOrder> getUserOrdering(TbOrder tbOrder) throws Exception{
    Criteria _criteria = getSession().createCriteria(TbOrder.class);

    if(tbOrder.getUserId() != null)
        _criteria.add(Restrictions.eq("UserId", tbOrder.getUserId()));
    return (List<TbOrder>) _criteria.list();    
}

私のエンティティクラス:

class TbOrder {
    Long orderId;
    Long userId;

    public TbOrder(){

    }
    public TbOrder(Long orderId, Long userId){
        this.orderId = orderId;
        this.userId = userId;
    }

    public Long getOrderId() {
        return orderId;
    }
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    public Long getUserId() {
        return userId;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
}

class TbUser{
    private Long userId;
    private String userFirstName;
    private String userLastName;
    private String userLogin;
    private String userPwd;

    public TbUser() {

    }

    public TbUser(Long userId, String userFirstName, String userLastName,
            String userLogin, String userPwd) {
        this.userId = userId;
        this.userFirstName = userFirstName;
        this.userLastName = userLastName;
        this.userLogin = userLogin;
        this.userPwd = userPwd;
    }

    public Long getUserId() {
        return userId;
    }

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

    public String getUserFirstName() {
        return userFirstName;
    }

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

    public String getUserLastName() {
        return userLastName;
    }

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

    public String getUserLogin() {
        return userLogin;
    }

    public void setUserLogin(String userLogin) {
        this.userLogin = userLogin;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }
}

Tb_Order.UserId は、Tb_User にリンクする外部キーとして設定する必要があると思われますが、何らかの理由でそうすることができません。

ただし、これが私の状況です。id = 1001で注文したユーザーの姓と名、および注文の日付とコメントを取得したいと考えています。通常、しばらくグーグルで調べていると、誰かがid.useridTb_User オブジェクトを取得するようなことを試みることができると教えてくれますが、休止状態によって生成された Id クラスを取得できません。では、注文情報とユーザー情報の両方を取得する最善の方法を教えてください。ありがとう!

4

1 に答える 1

0

Dao クラスの関数を次のように変更してみてください。

public List <Tb_User>   getUserOrdering(TbOrder tbOrder) throws Exception{
    Criteria _criteria = getSession().createCriteria(Tb_User.class);

    if(tbOrder.getUserId() != null)
        _criteria.add(Restrictions.eq("UserId", tbOrder.getUserId()));
    return (List<Tb_User>) _criteria.list();    
}

取得するList <Tb_User>ものを反復処理し、getter メソッドを使用して Tb_User オブジェクトのリストからユーザーの名と姓を取得できます。

注:あなたが渡すTbOrder tbOrderオブジェクトには、必要な UserId が含まれていると想定しています。

于 2013-08-10T13:00:00.980 に答える