Hibernate 與 Mybatis 對映關係
阿新 • • 發佈:2018-11-25
一 OneToMany
一對多可以存在兩種對映實現:外來鍵關聯或表關聯。
create table customer (
id int(20) not null auto_increment,
name varchar(100),
primary key(id)
)
create table address (
id int(20) not null auto_increment,
province varchar(50),
city varchar(50),
postcode varchar(50),
detail varchar(50),
customer_id int (20),
primary key (id)
)
1 外來鍵對映:
@Entity
@Table(name="customer")
public class CustomerEO implements java.io.Serializable {
@OneToMany(cascade={ CascadeType.ALL })
@JoinColumn(name="customer_id")
private Collection<AddressEO> addresses = new ArrayList<AddressEO>();
...
}
外來鍵定義在多的一方,也就是address表中.
2 表對映
@Entity
@Table(name = "customer")
public class CustomerEO implements java.io.Serializable {
...
@OneToMany(cascade = { CascadeType.ALL })
@JoinTable(name="ref_customer_address",
joinColumns={ @JoinColumn(name="customer_id",referencedColumnName="id")},
inverseJoinColumns={@JoinColumn (name="address_id",referencedColumnName="id")})
private Collection<AddressEO> addresses = new ArrayList<AddressEO>();
...
}
二 ManyToMany
多對多, 不贅述。
三 Mybatis 的對映關係
參考:https://www.yiibai.com/mybatis/
mybatis 是將物件與SQL語句進行對映,而對於複雜的對映關係,更適合在XML檔案中進行定義。
對映關係的組建離不開ResultMap標籤。
而對於一對多,多對一,多對多關係的定義利用了關鍵字:Collection , Association標籤。