2016-05-26 8 views
0

私は次のクラスがあります。JDBI 1対多のジョインとマッピング

public class User { 

    private int id; 
    private String name; 
    private List<Comment> comments; 
    private List<Address> address; 

    // getters/setters 
} 


public class Comment { 

    private int id; 
    private String comment; 
    ... 
    // getters/setters 
} 


public class Address { 

    private int id; 
    private String streetName; 
    ... 
    // getters/setters 
} 

とユーザーマッパー:私が解決しようとしている

public class UserMapper implements ResultSetMapper<User> { 
    @Override 
    public User map(int i, ResultSet resultSet, StatementContext statementContext) throws SQLException { 
     User user = new User(); 
     user.setId(resultSet.getInt("id")); 
     user.setName(resultSet.getString("name")); 

     // user.setComments 
     // user.setAddresses 

     return user; 
    } 
} 

問題、コメントを設定してする方法ですユーザーへのアドレス。また、どのようにSQLクエリはこれのように見えるだろうか?

+0

私がこれを実装する方法は、トランザクションといくつかの方法を使用することです。おそらく理想的ではないかもしれませんが、本質的に私はオブジェクトに対して3つのクエリを実行してからそれらを一緒にマージします。クエリの1つが失敗した場合、トランザクションアノテーションは操作全体に失敗します。 – pandaadb

答えて

1

これはlibraryです。自動的にJDBIの1対多のマッピングを処理します。

+0

ありがとうございます。しかし、私の例でそれを使う方法を教えてください。私は、私はマップする必要があり、それを動作させるために登録するには混乱している、クールな私のSQLで左の結合を使用する必要があることがわかります。 – Kapparino

関連する問題