案例:
主表:用户User
属性:
private int uid;
private String name;
private String pid;
private Set<Room> rooms=new HashSet<Room>();
table user(UID,NAME,PID,URID)子表:住房Room
属性:
private int rid;
private String address;
private double price;
table room(RID ADDRESS PRICE)主表与子表之间是单向关联关系
问题:
在主表user中使用URID来表达用户与住房的一对多关系
而在子表room中只有住房应有属性对应的字段
SQL建表语句和对应的*.hbm.xml内容怎么写呢
主表:用户User
属性:
private int uid;
private String name;
private String pid;
private Set<Room> rooms=new HashSet<Room>();
table user(UID,NAME,PID,URID)子表:住房Room
属性:
private int rid;
private String address;
private double price;
table room(RID ADDRESS PRICE)主表与子表之间是单向关联关系
问题:
在主表user中使用URID来表达用户与住房的一对多关系
而在子表room中只有住房应有属性对应的字段
SQL建表语句和对应的*.hbm.xml内容怎么写呢
User.hbm.xml中添加:
<set name="rooms"><key column="uid"/><one-to-many class="Room"/></set>
Room.hbm.xml中添加:
<many-to-one name="user" column="uid" class="User" not-null="true"/>
而且我想避免在Room中使用外键会造成同一个住房多条记录的状况
比如住房1去年被用户1购买,Room表中就会添加一条记录
今年用户1将住房1售出,用户2又购买了住房1,
Room表中又会添加一条住房1的记录
不同的是它是被用户2购买的
我想把Room表设计成住房统计表而不是既统计住房数量又统计销售情况表
而User表只统计房屋购买者的购买情况
也就是说只要买过就能在数据库中体现