Example using Hattori and JPA ...
@Entity @Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "name" }) }) public class Project extends AbstractPersistentObject { @Column(nullable=false) private String name; private String description; @OneToMany(cascade = CascadeType.ALL) @Cascade(value = org.hibernate.annotations.CascadeType.DELETE_ORPHAN) private List<Product> products; //getters and setters... }
@ObjectPopulation(domainObjectClass = Project.class) public class ProjectDTO extends AbstractPersistentObjectDTO { @FieldPopulation(property="name") private String currentName; @FieldPopulation(property="description") private String desc; @CollectionFieldPopulation(dtoClass = ProductDTO.class, property="products") private List<ProductDTO> productList = new ArrayList<ProductDTO>();