Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public interface IItem {
int getId();
void setId(int);
List<IStrippedItem> getChildren();
void setChildren(List<IStrippedItem> items);
}
public interface IStrippedItem {
int getId();
void setId(int);
}
@RooJavaBean
public class PersonView {
private long id;
private String firstName;
private String lastName;
private List<PersonView> children;
public PersonView(Person p){
id = p.getId();
firstName = p.getFirstName();
lastName = p.getLastName();
//считаем, что children != null или добавляем проверки
children = new ArrayList<PesonView>(p.getChildren().size());
//for
}
}
ProxyFactory) было бы написать аннотацию для Roo, которая бы создавала подобный конструктор (если руками по какой-то причине не хочется писать). Что-то вроде @RooProxyConstructor(Person.class). Не очень понятно какие проверки в ант-билдере, возможно он бы и не понадобился (или его достаточно просто адаптировать). Плюс Roo в том, что он срабатывает в момент компиляции, а не выполнения (как рефлексии).RooProxyConstructor для Roo (вместо написания ProxyFactory и проверки для анта):@RooJavaBean
@RooProxyConstructor(Person.class)
public class PersonView {
private long id;
private String firstName;
private String lastName;
private List<PersonView> children;
}
Способ проксирования JPA сущностей для клиента (борьба с lazy initialization)