Как вставить вставить в поле значение типа 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 и соответсвенно жду вашей помощи.
Для того чтобы при вставке объекта 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 при выборке из базы данных.
Для того чтобы при вставке объекта 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 пользователя, которому нужно присвоить объект InfoUsersinfoUsers.setIdUser(userId);
sessionFactory.getCurrentSession().save(infoUsers);
Таким образом, при вставке объекта InfoUsers в бд в поле id_user будет сохранен id пользователя, который вы установили с помощью метода setIdUser. Hibernate самостоятельно свяжет объекты InfoUsers и Users по этому id при выборке из базы данных.