在使用單向一對多mapping,一種簡單的作法是在「many」的一方中的table中的某一個欄位用來儲存「one」一方的主鍵,如果以下方範例來說, Address表中有一欄叫personId是Person表中的主鍵。 create table Person ( personId bigint not null primary key ) create table Address ( addressId bigint not null primary key, personId bigint not null ) 取自Hibernate reference Documentation 3.3.2.GA, 7.2.3 set 要加上 cascade="all" or cascade="save-update" 當我們在儲存Person物件(含有Address)的時候,hibernate可以自動幫我們將Person的主鍵填入Address表的personId欄位中而不需要手動寫程式。 關鍵在Person的mapping document上 key column中 not-null="true" 的這個設定。 public class OneToMany { public static void main(String[] args){ Address add1 = new Address(); Address add2 = new Address(); Person p1 = new Person(); p1.sets(new HashSet()); p1.getAddresses().add(add1); p1.getAddresses().add(add2); Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); session.save(p1); // cascade tx.commit(); ...