繁体   English   中英

如何创建jooq自定义记录?

[英]How to create jooq custom record?

如何从另外两个现有记录创建自定义jOOQ记录,即合并两个现有记录对象的属性。

例如:

CustomerRecord(id, name, surname), 
ProductRecord(id, customer_id, description)
SELECT * FROM Customer JOIN Product ON Customer.id = Product.customer_id;

进行这样的查询后,我将获得RecordImpl对象,并希望有一个自定义对象,可以访问两个表的字段属性。

有多种选择可实现您的所需。

使用视图

其中之一就是简单地创建一个视图:

-- Potentially disambiguate the ID (and other) columns
CREATE VIEW CustomerAndProducts AS
SELECT * FROM Customer JOIN Product ON Customer.id = Product.customer_id;

然后,代码生成器将拾取该视图并为您生成一个CustomerAndProductsRecord

使用您自己的CustomRecord

您可以通过扩展org.jooq.impl.CustomRecord来创建自己的TableRecord子类型, org.jooq.impl.CustomRecord处所述: https : org.jooq.impl.CustomRecord

它们几乎像普通的TableRecord类型一样工作,并且可以具有自己的一组getter / setter方法

使用任何您喜欢的课程

您不必使用记录。 jOOQ可以使用以下代码将您的结果提取到任何类型的类中(可能恰好是记录,请参见上文):

List<MyClass> list =
DSL.using(configuration)
   .select()
   .from(CUSTOMER)
   .join(PRODUCT)
   .on(CUSTOMER.ID.eq(PRODUCT.CUSTOMER_ID))
   .fetchInto(MyClass.class);

在上面的示例中, DefaultRecordMapper用于在jOOQ的记录和您的类之间进行映射。 有关详细信息,请参见其Javadoc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM