Как вставить вставить в поле значение типа int которое которое ссылается на другой объект в hibernate mapping? Здравствуйте. Есть две сущности из которого один ссылается на другой. В маппинге хиберната выставлено настройки и соотвественно поле id_users представлено в InfoUsers как users для того что бы при выборке возвращалось класс Users по соответствующему id а не наоборот. public class InfoUsers {
private int id;
private Users users;
private String idUuid;
private String name;
private String surname;
private String email;
@Id
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
@JoinColumn(name = "id_user",referencedColumnName = "id")
public Users getIdUser() {
return users;
}
public void setIdUser(Users user) {
this.users = users;
}
@Basic
@Column(name = "id_uuid")
public String getIdUuid() {
return idUuid;
}
public void setIdUuid(String idUuid) {
this.idUuid = idUuid;
}
@Entity
public class Users {
private int id;
private String login;
private String password;
private byte enabled;
@Id
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
@Column(name = "login")
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
Как сделать так что бы при вставке тоесть при infoUsers.setIdUser(addUser(user)); sessionFactory.getCurrentSession().save(infoUsers); вставлялось id объекта users в бд. Не знаю просто как реализовано коробка hibernate и соответсвенно жду вашей помощи.

21 Авг 2019 в 07:05
261 +1
1
Ответы
1

Для того чтобы при вставке объекта InfoUsers в бд в поле id_user встраивался id объекта Users, вам нужно правильно установить связь между этими сущностями в маппинге Hibernate.

В вашей сущности InfoUsers у вас уже есть правильно настроенное поле users, которое ссылается на объект Users. Однако, вам нужно изменить метод setIdUser таким образом, чтобы он принимал id пользователя, а затем искал объект Users с этим id и устанавливал его в поле users.

Примерно так:

public void setIdUser(int userId) {
Users user = // Найти объект Users по id
this.users = user;
}

Затем, когда вы вставляете объект InfoUsers в бд, вы можете использовать этот метод следующим образом:

int userId = // id пользователя, которому нужно присвоить объект InfoUsers
infoUsers.setIdUser(userId);
sessionFactory.getCurrentSession().save(infoUsers);

Таким образом, при вставке объекта InfoUsers в бд в поле id_user будет сохранен id пользователя, который вы установили с помощью метода setIdUser. Hibernate самостоятельно свяжет объекты InfoUsers и Users по этому id при выборке из базы данных.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир