id(PK),地址
id(PK),buildingid(FK引用建筑表)
id(PK),roomid(FK引用房间表),已激活
public class Building {
private int id;
private String address;
private List<Room> rooms;
}
public class Room {
private int id;
private List<Sensor> sensors;
}
public class Sensor {
private int id;
private boolean activated;
}
我有一个带有以下签名的方法
public Building getBuilding(int id) {
// get address from building table
// get rooms from room table
// for each room
// get sensors from sensor table
// return building object
}
我不确定每次读取整个数据是个好主意。这里有固有的设计问题吗?任何指向设计模式或最佳实践的指针都会很有用。
P.S。我还没有使用像Hibernate之前的任何框架
答案 0 :(得分:1)
这个问题有点宽泛,但我会尝试一下
我不确定每次阅读整个数据是否是个好主意
理想情况下,您应该加载所需的确切数据量。如果你需要一切,那就没有了。
如果您有多个用例,您需要有关构建的特定数据(或其他任何内容),您可以创建多个类来表示它们并使用不同的查询加载它们,例如:
class BuildingWithAddress {
int id
String address;
}
class BuildingWithSensors {
int id
List<Sensor> sensors;
}
// etc.
这里有固有的设计问题吗?
没有。您设计的课程看起来很好,根据您的使用情况,可能就足够了。
这里有任何关于设计模式或最佳实践的指针都很有用。