1
我可以創建一個將從2個(或更多)表中檢索數據的實體嗎?來自兩個表的數據的實體
我想有表:
user: id, name, password user_address: idUser, street, city
而且UserEntity有:
int: id
String: name, password, street, city
當僅使用一個表,我有:
UserEntity:
@Entity
public class UserEntity {
@Id
@GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "user")
private String user;
@Column(name = "password")
private String password;
//+ getter + setters
}
以及一種方法使用代碼從DB加載用戶:
String queryString = "FROM UserEntity WHERE user = :user AND password = :password";
Query query = session.createQuery(queryString);
query.setString("user", userForm.getUser());
query.setString("password", userForm.getPassword());
UserEntity userEntity = (UserEntity) query.uniqueResult();
這是可能的,但爲什麼你會這樣做,而不是將所有內容都存儲在一張表中? – 2012-03-02 18:30:16
感謝您的回答。這是因爲 - 並非每個用戶都有地址。所以我最好把它存放在兩張桌子裏。 – Dan 2012-03-02 18:34:54
如果是這樣,用戶不應該與另一個地址實體有OneToOne關聯嗎?如果將地址的每個字段直接存儲在用戶實體中,則自然映射就是將字段存儲在用戶表中。 – 2012-03-02 18:40:34