2006-04-01

[Note] Hibernate One-to-one Association

一對一有兩種實作方式: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;
}
}

沒有留言:

張貼留言