Использование Hibernate для соединения с таблицами - PullRequest
1 голос
/ 29 июля 2010

Я создаю приложение, в котором люди смогут публиковать комментарии или статьи, а пользователи смогут оценивать, была ли статья полезна для них или нет.

В настоящее время у меня есть две сущности, которые выглядят следующим образом (не относящиеся к делу подробности опущены):

Article.java

@Entity
Article

@Id
private int article_id

@ManyToOne
@JoinColumn(name="user_id")
private User user;

User.java
@Entity
User 

@Id
private int user_id

Я хочу узнать, проголосовал ли пользователь за статью или нет.по двум причинам: 1. не позволять им голосовать дважды, 2. предлагать другие статьи, которые могут быть полезны.

Я экспериментировал с отношением @OneToMany в каждом объекте с опцией Cascade, каждая ссылка в которойArticle and User для обновления объекта, который я назвал User_Article (который имеет только два столбца, article_id и user_id), однако, я продолжаю получать LazyInitilizationException, когда происходит каскад?

Я смотрю на любойHibernate гуру руководство по реализации и архитектуре по этой проблеме.

1 Ответ

1 голос
/ 29 июля 2010

Попробуйте

@OneToMany(fetch=FetchType.EAGER)

Тем не менее, рекомендуется избегать активной загрузки больших коллекций.Поэтому оставьте его ленивым и инициализируйте его, используя Hibernate.initialize(..), только когда вы уверены, что оно вам понадобится.Или используйте HQL-запрос, например:

SELECT entity FROM Entity entity JOIN entity.collection
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...