Я новичок в JPA / Hibernate, я создаю простое объединение для получения некоторых данных в другой таблице. Давайте посмотрим на это так:
Цель - получить данные M_PROFILE на основе столбца M_USER.username, но ясно видно, что в таблице M_PROFILE нет внешнего ключа.
Я просто пытаюсь использовать приведенный ниже код, но не получаю результатов и всегда получаю ошибку.
Класс сущности пользователя
@Entity
@Table(name = "M_USER")
public class User {
@Id
@Column(name = "id")
private String uuid;
@Column(name = "email")
private String email;
@Column(name = "username")
private String username;
@OneToOne(fetch = FetchType.LAZY)
@MapsId("username")
private Profile profile;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Profile getProfile() {
return profile;
}
public void setProfile(Profile profile) {
this.profile = profile;
}
}
Класс сущности профиля
@Entity
@Table(name = "M_PROFILE")
public class Profile {
private String username;
private String phone;
private String address;
@Id
@Column(name = "username", nullable = false)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Basic
@Column(name = "phone")
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Basic
@Column(name = "address")
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Я получил другую ошибку при вызове
User user = userRepository.findByUsername("aswzen");
String phone = user.getProfile().getPhone();
, например, этой.
"USER0 _". "PROFILE_USERNAME": неверный идентификатор
Нужна помощь, заранее спасибо,
Примечание: у меня нет привилегии дляизменить таблицу ..