2013-06-12 39 views
3

Jooq提供了一个from()方法,可以让您将DTO复制到记录中。如何排除字段被复制

但是我想复制只有一些字段,以防止客户端更新只读信息。

理想情况下,我想能够写类似:

myrecord.from(mybean, "name", "description", "someOtherField") 

myrecord.from(mybean, User.NAME, User.DESCRIPTION, User.SOME_OTHER_FIELD) 

,只有具备三个字段复制。

当然,它可以通过例如,手动调用getters/setters,但我希望有一个更简单的方法。

回答

1

随着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); 
+0

您可能需要更新您的答案,以反映事实,这是现在的3.1 –

+0

@JakubBochenski实现:完成。请注意,您可以在Stack Overflow上自己提供编辑建议... –