0
我有一类用户,可以有许多loginNames:对象在JPA ElementCollection作为键
@Entity
public class User {
@ElementCollection
private List<String> logins = new ArrayList<String>();
}
我希望确保每次登录都是独一无二的系统,当用户登记。当有人登录时,用户对象应该通过登录名找到。所以集合中的元素是某种(数据库)键。
我怎样才能让他们的钥匙?我如何有效地查询?使用单独的实体类作为登录名会更好吗?
使用“键”我的意思是我可以在不查询所有对象的情况下获取相关对象,无论它们是否包含登录列表中的某个值。 会是'@CollectionTable(uniqueConstraints = @ UniqueConstraint(columnNames = {“USER_LOGIN”}))'correct? 是否可以有效地查询具有特定登录(UserRepository#findByLogin(String))的用户的数据库? – deamon 2010-01-05 12:24:43
独特的约束看起来不错,但你可以轻松地尝试它。 查询是否“高效”取决于JPA实现。用户只提供一个JPQL查询,这就是他们应该做的。如果你想搜索某一列,那么你也可以索引它 – DataNucleus 2010-01-06 08:51:26