我正在使用Spring MVC和Hibernate开始一个项目。我很关心与班级构成有关的最佳做法。假设我有一个名为User的类,并使用像Hibernate这样的ORM技术。Java Spring MVC + Hibernate类组合
我不知道是否应该包括所有与用户类内的用户实体相关的。我知道Hibernate通过延迟加载自动提高了性能,因此当我们检索用户时它不会检索所有实例变量。不过,我觉得如果我们在User类中包含了太多的变量,查询User对象将变得非常昂贵。
考虑这个例子:
@Entity
@Table(name = "Users")
public class User{
private String username;
private String password;
private long user_id;
private Collection<Transaction> transactions;
}
在这里,用户类存储交易的集合。每笔交易都代表用户在网站上进行的购买交易。但我们不需要为每个用户存储一个交易集合。
相反,我们可以做一个交易表所示:
@Entity
@Table(name = "UserTransactions)
public class Transaction{
private int user_id;
private int order_id;
private double amount_paid;
}
通过此次交易表中,我们仍然可以存储每一笔交易的每个用户作出。
这只是一个例子,还有很多变量不需要存储在User类中,并可以用自己的表来表示。所以我想知道在User类中是否存在所有这些变量的损害,或者我们是否应该小心并选择包含在User类中的东西?每种方法的优缺点是什么?
预先感谢您!
你想问什么?如何创建hibernate实体之间的关系? –