如何从现有的两个其他记录对象创建自定义jOOQ记录,即合并两个现有记录对象的属性。
例如:
CustomerRecord(id, name, surname),
ProductRecord(id, customer_id, description)
SELECT * FROM Customer JOIN Product ON Customer.id = Product.customer_id;
在这样的查询之后,我将获得RecordImpl对象,我希望自定义一个可以访问两个表中的字段属性。
答案 0 :(得分:0)
有几种方法可以实现您的目标。
其中一个就是简单地创建一个视图:
$ aws ... |& awk '{print strftime("%Y-%m-%d:%H:%M:%S"), $0}' > log
然后代码生成器会选择该视图并为您生成-- Potentially disambiguate the ID (and other) columns
CREATE VIEW CustomerAndProducts AS
SELECT * FROM Customer JOIN Product ON Customer.id = Product.customer_id;
CustomerAndProductsRecord
您可以通过扩展org.jooq.impl.CustomRecord
创建自己的CustomRecord
子类型,如下所示:
https://www.jooq.org/doc/latest/manual/sql-building/queryparts/custom-queryparts
它们几乎像普通的TableRecord
类型一样工作,并且可以拥有自己的一组getter / setter
您不必使用记录。 jOOQ可以使用以下代码将您的结果提取到任何类(可能恰好是记录,见上文):
TableRecord
在上面的示例中,DefaultRecordMapper
适用于在jOOQ的记录和您的班级之间进行映射。 See its Javadoc for details