我是新来的使用JOOQ和我有问题,但我找不到解决方案。我有2张表简单的数据库:Sellers
和Clients
- 下面的SQL: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
被分配给他。
我想从使用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);
我应该改变让我想要什么?
'客户'有'卖家'作为对象。数据库将'seller_id'作为'int'。 JOOQ会自动解决吗? – bradimus
@bradimus它将seller_id自动解析为int,但正如您在我的客户端类中所看到的,我也试图添加对象卖家卖家,但它没有解决它。 – user3626048