Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.04.2017, 16:36   #1
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию JAVA Hibernate The problem with the query to the tables is through OneToMany

У меня есть две таблицы t_user и t_photo связанные один ко многим.
Когда я делаю запрос по user_id который в таблице t_photo только один, программа мне возвращает несколько тысяч одной и той же записи.
Думаю проблема с настройкой hibernate.
Может кто сталкивался с подобной проблемой?
I have two tables t_user and t_photo that are linked by OneToMany.
I make an id request to t_user.
In t_photo there is only one entry with this user_id.
The program returns to me several thousand records, but the record is the same.
//MY Request
Код:

@RequestMapping(value= "/api/getuser.json", method = RequestMethod.POST)
@ResponseBody
public TUserEntity GetUser(@RequestBody TUserEntity[] test){
Session session = HibernateSessionFactory.getSessionFactory().openSession();
TUserEntity user = session.load(TUserEntity.class,27);
session.close();
return user;
}

//class TUserEntity
Код:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "tUserByUserId", cascade = CascadeType.ALL)
public Collection<TPhotoEntity> gettPhotosByUserId() {
return tPhotosByUserId;
}

//class TPhotoEntity
Код:

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id",insertable = false, updatable = false)
public TUserEntity gettUserByUserId() {
return tUserByUserId;
}


Последний раз редактировалось Serg.H; 13.04.2017 в 16:47.
Serg.H вне форума   Ответить с цитированием
Старый 13.04.2017, 16:52   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,963
Репутация: 2784

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Serg.H Посмотреть сообщение
The program returns to me several thousand records, but the record is the same.
What do you mean? In this code you are querying just one record (by id, 27).
Alex11223 на форуме   Ответить с цитированием
Старый 13.04.2017, 17:07   #3
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию

27 is user_id which is also in the linked table t_photo
Можем общаться на русском если удобно вам?

Последний раз редактировалось Serg.H; 13.04.2017 в 17:14.
Serg.H вне форума   Ответить с цитированием
Старый 13.04.2017, 17:36   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,963
Репутация: 2784

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Так хоть на каком-нибудь языке объясните в чем у вас проблема )

В GetUser не может быть "несколько тысяч одной и той же записи", вы ж только одну возвращаете. Где вы увидели их?
Alex11223 на форуме   Ответить с цитированием
Старый 13.04.2017, 17:45   #5
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию

Спасибо что откликнулись.
у меня две таблицы user и photo этого user- а связаны один ко многим через user_id.
Я делаю запрос загрузить мне в class User например по id 2.
В таблице Photo есть всего одна запись с данным id.
тоесть он мне должебн загрузить в class user одного user с Collection <Photo> в котором должна быть всего одна запись.
когда я делаю запрос он мне возвращает следующее: (не буду копировать все что он возвращает поскольку таких строк несколько тысяч)
{"userId":2,"username":null,"passwo rd":"155150","fName":"Seroj2","pNam e":null,"email":null,"lName":null," tPhotosByUserId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":{"userId":2, "username":null,"password":"155150" ,"fName":"Seroj2","pName":null,"ema il":null,"lName":null,"tPhotosByUse rId":[{"photoId":3,"userId":2,"photolink" :"/2/1.jpg","tUserByUserId":
Serg.H вне форума   Ответить с цитированием
Старый 13.04.2017, 17:54   #6
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию

Думаю он впадает в бесконечный цыкл.
Поскольку в классе user есть переменная photo, а в классе photo есть переменная user
думаю тут проблема настройки Hibernate а , но найти не могу что там не так написал или недописал.
Serg.H вне форума   Ответить с цитированием
Старый 13.04.2017, 18:06   #7
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так хоть на каком-нибудь языке объясните в чем у вас проблема )

В GetUser не может быть "несколько тысяч одной и той же записи", вы ж только одну возвращаете. Где вы увидели их?
Я делаю запрос через postman on мне возвращает User в формате JSON
Если в таблице Photo нету записей с данным user_id, он мне возвращает всего одну запись с User.
А если есть то возвращает что я написал выше
Если надо могу скопировать оба класса и будет яснее.

Последний раз редактировалось Serg.H; 13.04.2017 в 18:18.
Serg.H вне форума   Ответить с цитированием
Старый 13.04.2017, 18:19   #8
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,963
Репутация: 2784

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

А первые несколько ссылок в гугле по "hibernate json infinite recursion" не помогли?
http://stackoverflow.com/questions/9...nite-recursion
http://keenformatics.blogspot.com/20...recursion.html
Alex11223 на форуме   Ответить с цитированием
Старый 13.04.2017, 18:25   #9
Serg.H
Новичок
 
Регистрация: 13.04.2017
Сообщений: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А первые несколько ссылок в гугле по "hibernate json infinite recursion" не помогли?
http://stackoverflow.com/questions/9...nite-recursion
http://keenformatics.blogspot.com/20...recursion.html
Пока не помогло ничего ,я уже многое перепробывал прежде чем на форум залезть
Но сейчас посмотрю и ваши ссылки.
Большое Спасибо что уделили время.
Serg.H вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Postfix problem(Python,Java,C#) Rita21 Помощь студентам 0 06.12.2015 09:28
Could not allocate ancillary table for view or function resolution. The maximum number of tables in a query (260) was exceeded. Swatch SQL, базы данных 2 19.12.2014 08:48
Java+firebird+hibernate NadS Java Базы данных (JDBC, JPA, Hibernate) 0 16.12.2012 13:40
Hibernate. Java. Загрузить список только из одного поля таблицы KBI Java Базы данных (JDBC, JPA, Hibernate) 1 26.07.2012 19:32
java:hibernate + spring Jakethefish Java Базы данных (JDBC, JPA, Hibernate) 0 08.06.2010 12:55




19:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru