一對一有兩種實作方式:one-to-one or many-to-one with unique,前者兩邊物件的PK共用,也就是用相同的PK做reference,後者則是使用一般的一對多(PK對FK),然後在多的那一邊的FK上加上unique的限制。
下面假設的狀況除了一對一的關聯外,還加上對一個關聯可有可無。
零或一的關聯:一個人可能有一部車,但是一部車一定有主人,也就是車子依附在主人身上。所以man.getCar()可能回傳null,因此每次使用man.getCar()時,都要先檢查car是否為null。
public class Man {
private Car car;
/**
* @hibernate.many-to-one column="CAR_ID"
* foreign-key="Man_Car_FK"
* cascade="all" unique="true" lazy="false"
*/
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
}
public class Car {
private Man man;
/**
* @hibernate.one-to-one property-ref="car" cascade="none"
*/
public Man getMan() {
return man;
}
public void setMan(Man man) {
this.man = man;
}
}
沒有留言:
張貼留言