hibernate值类型集合映射-一个顾客多个地址

顾客:
Customer
[code="java"]
public class Customer {

private Long id;
private String name;

private Set Addresses = new HashSet();

     //省略相应的getter/setter方法

}
[/code]
表:

c2

id int
name varchar(20)

地址:
[code="java"]
public class Address {
private String city;
private String zipcode;

public Address () {}
     //省略相应的getter/setter方法

}
[/code]

表:

a2

customer_id int,
city varchar(10),
zipcode varchar(10),
foreign key(customer_id) references c2(customer_id)

首先我想问一下,需不需要为Address编写Address.hbm.xml文件。如果要怎么写那块。
第二,Customer.hbm.xml中的set需不需要设置inverse
第三,Customer和Address能不能级联保存,如果能怎么写

不好意思,实在是hibernate新手,请大家帮我一下,多说点集合映射的东西给我,谢谢了!
[b]问题补充:[/b]
[code="java"]







[/code]
我昨天下午是这么配来着,似乎是能运行,也没有给Address建立hbm.xml文件。
我之所以有这个问题是因为刚买了本《Hibernate in Action》第二版。里面比较强调[color=red][b]值类型和实体类型的区别[/b][/color],也谈到了值类型的集合的映射,就像我现在处理的Address(顾客的地址),我是自己想试一下,所以有了这个问题。
[b]问题补充:[/b]
最后,在实际开发中,处理这种一个人有多个地址的,怎么解决?谢谢!

好吧,我的建议是,除了纯多对多表,其他的表都必须要一个主键,hibernate的思想也是这样的

[code="sql"]
--用户表
create table T_CUST
(
CUST_ID int,
CUST_NAME varchar(10),
constraint PK_CUST_ID primary key (CUST_ID)
);
--地址表
create table T_ADDRESS
(
ADDRESS_ID int,
CITY varchar(20),
STREET_NBR varchar(20),
CUST_ID int,
constraint PK_ADDRESS_ID primary key (ADDRESS_ID),
constraint FK_ADDRESS_CUST foreign key (CUST_ID) references T_CUST (CUST_ID)
);
[/code]

然后所有的实体类都要实现序列化接口。
[code="java"]
// 客户pojo
public class Cust implements Serializable {
private Long custId;
private String custName;
private List

addressList = new ArrayList (0);
// ... 剩下的是构造方法和getter、setter
}
// 地址pojo
public class Address implements Serializable {
private Long addressId;
private String city;
private String streetNbr;
private Cust cust;
// ... 剩下的是构造方法和getter、setter
}
[/code]

[code="xml"]

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
















<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">


















[/code]

貌似就是这个样子了

第一,需要为Address编写一个orm的xml
而且,建议你为Address添加一个主键
Hibernate没有主键应该是跑不动的

初学的话,先不自己写,让它自动生成,然后自己在看,对着学。