我们假设我们有三个需要保留的域类:
class House{
private List<Room> rooms;
private Address address;
}
class Room{
private String id;
...
}
class Address{
private String id;
...
}
如果是,那就更好了:在问题的顶部实现House类,或用含有id的较轻String
替换对象字段?
class House { 私人清单&lt;&#39;字符串&gt; roomIds; private String addressId; }
谢谢!
答案 0 :(得分:0)
是的,每个域对象都应该有ID,因为您必须提供数据库中每个实体的唯一性。 Id字段的类型取决于您使用的数据库。如果你使用sql数据库,那么它通常是长类型。如果您使用MongoDb - 它是String。
class House {private List&lt;'String&gt; roomIds; private String addressId; }
你不应该使用ID列表。这是不好的做法。改为使用实体之间的关系。 Сonsider使用JPA构建域模型。在你的情况下房子和房间之间的关系 - OneToMany,因为一个特定的房子可以包括很多房间,但每个房间只能属于一个房子。在地址的情况下......这是OneToOne关系。每个地址都有单独的房子(平面)。您可以使用Address作为可嵌入对象进入House。
class House{
private long houseId;
private List<Room> rooms;
private Address address;
}
class Room{
private int roomId;
private House house;
}
class Address{
private long addressId;
...
}
答案 1 :(得分:0)
每个类都应该有一个id,如果你使用hibernate,你需要使用 @Id 进行注释。在设计模型时,您应该考虑两种类型的键。
自然键 -
自然键(也称为业务键)是一种在关系模型数据库设计中找到的唯一键,它由现实世界中已存在的属性组成。它用于与业务相关的列。 ...自然密钥有时称为域密钥。
代理键 - 代理键是可以声明为主键而不是“真实”或自然键的任何列或列集。有时可以有几个自然键。