http://www.jpox.org/docs/1_2/jpa/annotations.html
Must haves:
@Entity class MyClass
@Version private int version@Id @Column(name = "ID", nullable = false) @GeneratedValue(strategy = GenerationType.AUTO) private long id; //ID property is mandatory!!
1:1 unidirectional invoice -> order
class Invoice
@OneToOne(optional=false)//optional false = inner join, default TRUE = outer join @JoinColumn(name = "ORDER_ID") private Order order;
1:1 bidirectional invoice <-> order (as unidirectional plus:)
class Order
@OneToOne(optional=false,
cascade=CascadeType.ALL,private Invoice invoice;
mappedBy="order", targetEntity=Invoice.class)
N:1 biderectional
@ManyToOne(optional=false)
Class Order
@JoinColumn(name="CUST_ID",
referencedColumnName="CUST_ID") private Customer customer;class Customer @OneToMany(mappedBy="customer", targetEntity=Order.class, fetch=FetchType.EAGER) private Collection orders;
class order
N:N uniderectional
@ManyToMany(fetch=FetchType.EAGER) @JoinTable(name="ORDER_DETAIL", joinColumns= @JoinColumn(
name="ORDER_ID", referencedColumnName="ORDER_ID"), inverseJoinColumns= @JoinColumn( name="PROD_ID", referencedColumnName="PROD_ID")
)