http://www.jpox.org/docs/1_2/jpa/annotations.html
Must haves:
@Entity
class MyClass
@Id
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long id; //ID property is mandatory!!
@Version
private int version
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,
mappedBy="order",
targetEntity=Invoice.class)
private Invoice invoice;
N:1 biderectional
Class Order
@ManyToOne(optional=false)
@JoinColumn(name="CUST_ID",
referencedColumnName="CUST_ID")
private Customer customer;
class Customer
@OneToMany(mappedBy="customer",
targetEntity=Order.class,
fetch=FetchType.EAGER)
private Collection orders;
N:N uniderectional
class order
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="ORDER_DETAIL",
joinColumns= @JoinColumn(
name="ORDER_ID",
referencedColumnName="ORDER_ID"),
inverseJoinColumns= @JoinColumn(
name="PROD_ID",
referencedColumnName="PROD_ID")
)
Keine Kommentare:
Kommentar veröffentlichen