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>();