powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Установка связи ManyToOne через ID в Hibernate
9 сообщений из 9, страница 1 из 1
Установка связи ManyToOne через ID в Hibernate
    #38452878
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите пожалуйста можно ли в Hibernate установить связь ManyToOne через ID а не через объект. Например есть сущность User (One) и Post (Many). И нужно чтобы связь устанавливалась не через объект postDao.setUser(user) а через ID postDao.setUser(id). Можно ли так?
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38452891
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Просто @ManyToOne не используй и всё. Замапь Foreign Key как обычное Long свойство.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38452901
carper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во-первых, совершенно не понял при чем здесь DAO?
Связь устанавливается на уровне сущности (Entity).

Во-вторых, если я верно понимаю, то ID пользователя у вас уже существует в таблице, и связанной с ним сущности, POSTS.

Если так, и вам нужен только ID, то ничего делать не надо, "связь" уже есть.
Более того, исходя из вашей постановки задачи - вам не хочется тянуть более никаких полей из USER, кроме ID, которое уже и так есть в POSTS.
Если же имелось в виду что-то вроде экономии на объектах, то для этого есть lazy инициализация.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453312
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz , а что если связь ManyToOne нужна. Я пробовал добавлять свойство userId в Post но связь ManyToOne не удалял. Так не работает добавление.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453319
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9 Blazkowicz , а что если связь ManyToOne нужна. Я пробовал добавлять свойство userId в Post но связь ManyToOne не удалял. Так не работает добавление.
У вас куча разнообразных проблем из-за непонимания ORM, которые вы все характеризовали термином "не работает", и при этом спрашиваете, как сделать так чтобы ваше решение проблемы работало. Другие решения принципиально не рассматриваются?
Почему не подходит lazy свойство?
Почему обязательно по id надо грузить?
При чем тут "добавление", если вопрос был про загрузку.
Объясните проблему полностью. А не кусками.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453330
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПри чем тут "добавление", если вопрос был про загрузку.

Это из другого поста. К этому отношения не имеет.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453396
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz , использую JSF и хочу при добавлении записи установить связь @ManyToOne. В JSF в теге <h:selectOneMenu/> используя конвертер можно установить связь @ManyToOne через объект . Но мне не нужен выбор а нужно просто скрыто задать пользователя или еще что-то. У кнопки есть тег <f:setPropertyActionListener /> но в нем нельзя использовать конвертер вот и хочу через ID установить связь либо в бине конвертировать.

Так можно сделать используя тег <h:selectOneMenu/> но мне так не подходит:
Код: java
1.
2.
3.
4.
5.
//User user= new User ();
//user.setUserName("z3r9");

Post post= new Post ();
post.setUser(user);



Пробовал создавать свойство userId в Post и добавлять так:

Код: java
1.
2.
3.
4.
5.
//User user= new User ();
//user.setUserName("z3r9");

Post post= new Post ();
post.setUserId(userId );



Не работает. Наверное так просто нельзя делать чтобы и @ManyToOne и само поле было в сущности Post.

Что касается lazy инициализации. То ли вопрос мой не понят, то ли я не понимаю как использовать lazy инициализацию для добавления.
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453437
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
Вот этого должно быть достаточно.
Код: java
1.
post.setUser(new User(userId));
...
Рейтинг: 0 / 0
Установка связи ManyToOne через ID в Hibernate
    #38453751
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz , спасибо большое за помощь, раньше так пробовал. Хоть не совсем то, то есть тут все равно идет конвертация id в объект. То есть придется в бине переопределять метод save везде где нужны связи типа пользователя. А так если можно было бы на JSF страничке задать, не пришлось бы лишний код писать в бине. Ну ладно, и так сойдет может в новых версиях JSF сдделают конвертер в теге <f:setPropertyActionListener />.

Спасибо всем за помощь.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Установка связи ManyToOne через ID в Hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]