package org.hibernate.test.bytecode.enhancement.cascade; import java.util.ArrayList; import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; /** * Created by barreiro on 12/9/15. */ @Entity public class Parent { private Long id; private String name; private List<Child> children = new ArrayList<Child>(); private String lazy; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; } public void setId(Long id) { this.id = id; } @OneToMany(mappedBy = "parent", cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE }, fetch = FetchType.LAZY) public List<Child> getChildren() { return children; } public void setChildren(List<Child> children) { this.children = children; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Basic(fetch = FetchType.LAZY) public String getLazy() { return lazy; } public void setLazy(String lazy) { this.lazy = lazy; } Child makeChild() { final Child c = new Child(); c.setParent( this ); this.children.add( c ); return c; } }