Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOOQ中的POJO映射,与参数顺序无关_Java_Database_Mapping_Record_Jooq - Fatal编程技术网

Java JOOQ中的POJO映射,与参数顺序无关

Java JOOQ中的POJO映射,与参数顺序无关,java,database,mapping,record,jooq,Java,Database,Mapping,Record,Jooq,当我生成JOOQ pojo时,构造函数遵循与数据库表中字段相同的参数顺序 当查询表并使用fetchInto时,只要POJO构造函数参数的顺序和数据库表中字段的顺序相同,这种方法就可以正常工作 返回创建 .选择() .从(钥匙) .fetchInto(Key.class); 如何将上述查询映射到Key.class,而不考虑构造函数参数顺序? 例如,我可以将mapstruct之类的东西与JOOQ结合使用吗?您可以使用@java.beans.ConstructorProperties对构造函数进行注

当我生成JOOQ pojo时,构造函数遵循与数据库表中字段相同的参数顺序

当查询表并使用
fetchInto
时,只要POJO构造函数参数的顺序和数据库表中字段的顺序相同,这种方法就可以正常工作

返回创建
.选择()
.从(钥匙)
.fetchInto(Key.class);
如何将上述查询映射到
Key.class
,而不考虑构造函数参数顺序?
例如,我可以将mapstruct之类的东西与JOOQ结合使用吗?

您可以使用
@java.beans.ConstructorProperties
对构造函数进行注释。我们还支持Java8的参数名反射(请参阅),但这似乎并不可靠,因为它取决于编译自己的代码时设置的标志


另请参阅。

的文档,感谢您的提示,
@java.beans.ConstructorProperties
不是自动生成的POJO的选项,我也无法使用反射,但我将研究DefautlRecordMapper@emazzotta:这是一个很好的提示。我们绝对应该支持生成该注释:。同时,您可以重写
JavaGenerator.generatePojoMultiConstructor()
自己在所有不可变POJO上生成此注释。我无法重现最初的问题,即select查询无法自动将其结果映射到POJO,因为表属性和POJO构造函数参数的顺序不同。如果有什么变化,我会接受你的回答并回复。@emazzotta:唯一可能发生这种情况的是生成的代码(表、记录、POJO)不同步,或者你发现了一个罕见的错误。当然: