1
2つ(またはそれ以上)のテーブルからデータを取得するエンティティを作成できますか?2つのテーブルのデータを持つエンティティ
私はテーブルがしたい:と
user: id, name, password user_address: idUser, street, city
とUserEntityを:
int: id
String: name, password, street, city
1つのテーブルのみを使用して、私が持っている:
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();
これは可能ですが、1つのテーブルにすべてを保存するのではなく、そのようにするのはなぜですか? –
お返事ありがとうございます。これは、すべてのユーザーがアドレスを取得するわけではないからです。だから私は、より良いものは2つのテーブルに格納することです。 – Dan
その場合、ユーザーは別のアドレスエンティティとOneToOneの関連付けを持つべきではありませんか?アドレスのすべてのフィールドをUserエンティティに直接格納する場合、自然マッピングはフィールドをuserテーブルに格納することです。 –