2013-06-12 3 views
3

Jooq предлагает метод from(), который позволит вам скопировать DTO в запись.Как исключить поля из копий

Однако я бы хотел скопировать только некоторые поля, чтобы клиенты не могли обновлять информацию только для чтения.

В идеале я хотел бы, чтобы иметь возможность написать что-то вроде:

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

или

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

и только три поля копируются.

Конечно, это может быть сделано, например. вручную вызывающие геттеры/сеттеры, но я бы ожидал, что есть более простой способ.

ответ

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: Done. Обратите внимание, что вы можете сами редактировать рекомендации по переполнению стека ... –

Смежные вопросы