私はJOOQの使用時に新しいですが、問題はありますが解決策が見つかりません。JOOQ POJOオブジェクトを別のPOJOで取得 - テーブル内の外部キー
CREATE TABLE Sellers
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
);
CREATE TABLE Clients
(
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
seller_id int,
FOREIGN KEY (seller_id) REFERENCES Sellers(id)
);
Client
がforeign key
を持っており、それが彼に割り当てられているSeller
定義します - 以下のSQL Sellers
とClients
:私は2つのテーブルを持つ単純なデータベースを持っています。
私はJOOQを使用してデータベースからクライアントを取得したいと思いますが、join()
を使用すると、クライアントごとにSeller
オブジェクトが取得されます。出来ますか?もしそうなら、それを行う方法?ここに私のPOJOオブジェクトです:
public class Seller {
private final SimpleIntegerProperty id = new SimpleIntegerProperty();
private final SimpleStringProperty name = new SimpleStringProperty();
...
//setters and getters here
...
}
public class Client {
private final SimpleIntegerProperty id = new SimpleIntegerProperty();
private final SimpleStringProperty name = new SimpleStringProperty();
private final SimpleIntegerProperty sellerId = new SimpleIntegerProperty();
//private Seller seller; //not working
...
//setters and getters here
...
}
そして、ここでは私のJOOQコードは、クライアントを取得することです:
context.select()
.from(CLIENTS)
.join(SELLERS)
.on(CLIENTS.ID.eq(SELLERS.ID))
.fetchInto(Client.class);
私は私が欲しいものを得るために変更する必要がありますか?
'Client'は' seller'をオブジェクトとして持っています。 DBは 'int'として' seller_id'を持っています。 JOOQはそれを自動的に解決しますか? – bradimus
@bradimusそれは自動的にseller_idをintとして解決しますが、Clientクラスで見ることができるように、オブジェクト売り手の売り手を追加しようとしましたが、解決しませんでした。 – user3626048