jooq提供了一个from()方法,让您将一个dto复制到一个记录中。
但是,我只想复制一些字段,以防止客户端更新只读信息。
理想情况下,我希望能够写一些东西,比如:
myrecord.from( mybean, "name", "description", "someOtherField")
或
myrecord.from( mybean, User.NAME, User.DESCRIPTION, User.SOME_OTHER_FIELD)
只复制了三个字段。
当然,可以通过手动调用getter/setter来完成,但我希望有一种更简单的方法。
最佳答案
使用jooq 3.0,除了您所说的:手动复制值之外,您的问题没有精益解决方案。
在Jooq 3.1[#2519]中,您可以执行以下任何操作:
// Referencing fields that might be contained in myrecord
myrecord.from(mybean, User.NAME, User.DESCRIPTION, User.SOME_OTHER_FIELD);
// Referencing field names that might be contained in myrecord
myrecord.from(mybean, "name", "description", "some_other_field");
// Referencing field indexes that might be contained in myrecord
myrecord.from(mybean, 3, 4, 7);