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