Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Выборка данных из двух таблиц через третью Hibernate / 25 сообщений из 36, страница 1 из 2
09.09.2018, 16:08
    #39700112
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Есть две сущности:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
@Entity
@Table(name = "stage")
public class Stage extends AbstractEntity {

    @Column(name = "name")
    private String name;

    @Column(name = "color")
    private String color;

    @Column(name = "`default`")[SRC java]

    private boolean byDefault;

    @OneToMany(mappedBy = "stage", fetch = FetchType.LAZY)
    private List<StageContact> stageContacts = new ArrayList<>();

    public Stage() {}

    public List<StageContact> getStageContacts() {
        return stageContacts;
    }

    public void setStageContacts(List<StageContact> stageContacts) {
        this.stageContacts = stageContacts;
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
@Entity
@Table(name = "contact")
public class Contact extends AbstractEntity {

    @Column(name = "urlName")
    private String urlName;

    @Column(name = "name")
    private String name;

    @Column(name = "email")
    private String email;

    @Column(name = "url")
    private String url;

    @Column(name = "avatar")
    private String avatar;

    @Column(name = "type")
    private String type;

    @Column(name = "headline")
    private String headline;

    @Column(name = "company")
    private String company;

    @Column(name = "school")
    private String school;

    @Column(name = "location")
    private String location;

    @Column(name = "currency")
    @Enumerated(EnumType.STRING)
    private Currency currency;

    @JsonIgnore
    @OneToMany(mappedBy = "contact", fetch = FetchType.LAZY)
    private List<StageContact> stageContacts = new ArrayList<>();

    @PrePersist
    protected void onCreate() {
        super.onCreate();
    }

    public Contact() {}

}



Есть третья таблица для связки Stage и Contact:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
@Entity
@Table(name = "stageContact")
public class StageContact implements Serializable {

    @Id
    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId("stageId")
    @JoinColumn(name = "stageId", referencedColumnName = "id")
    private Stage stage;

    @Id
    @ManyToOne(fetch = FetchType.LAZY)
    @MapsId("contactId")
    @JoinColumn(name = "contactId", referencedColumnName = "id")
    private Contact contact;

    @Column(name = "price")
    private double price;

    public StageContact() {
    }

}



Проблема в том что я не могу получить список Contact когда получаю Stage. В Stage есть список StageContact, но мне нужен список Contact. Список StageContact мне приходиться загружать в любом случае иначе при преобразовании объекта в json в jackson происходит ошибка. Но если я получаю по загрузка выполняется бесконечно ибо в Stage который в StageContact есть список. И так дальше в глубь. В итоге выходит переполнение стека.

Как сделать что бы все было нормально? для меня главное получить список Contact.

Можно сделать выборку чисто по StageContact, но штука в том что мне хотелось что бы список Contact-ов был в Stage.
...
Рейтинг: 0 / 0
09.09.2018, 19:30
    #39700134
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,
Есть справочник Сотрудники и справочник Товары.
Отношения Много ко Много через Заказы.

Tsyklopя не могу получить список Contact когда получаю Stage. В Stage есть список StageContact, но мне нужен список Contact.
иначе:
я не могу получить все товары когда я получаю все сотрудники?
Логика есть?
...
Рейтинг: 0 / 0
09.09.2018, 19:44
    #39700136
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,

отстать от этой прокладки - просто для понимания нарисуй структуру связи таблиц на бумажке, а лучше инструментом для твоей субд - это будет более наглядно.
...
Рейтинг: 0 / 0
09.09.2018, 20:26
    #39700144
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
вадя,
Схема уже была сделана и по ней это и делал. Но как-то толку ноль.
...
Рейтинг: 0 / 0
09.09.2018, 20:27
    #39700145
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklopвадя,
Схема уже была сделана и по ней это и делал. Но как-то толку ноль.либо схема не правильная, либо прокладка лишняя
...
Рейтинг: 0 / 0
09.09.2018, 20:30
    #39700147
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Petro123,
Я делал как предлагали в гугле. Вся беда в том что в связующей таблице есть одно поле, которое переместить в другое место не могу. Там делали так. Если знаете другой вариант то буду рад если покажете. А вот эти свои сообщения с логикой и т.д. оставьте при себе. Я не для этого сюда написал. Я ищу ответ умных и опытных людей, а не ваши подобного рода.
...
Рейтинг: 0 / 0
09.09.2018, 20:34
    #39700148
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,

не имея схемы связей таблиц - советовать трудно
...
Рейтинг: 0 / 0
09.09.2018, 20:42
    #39700150
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
TsyklopВся беда в том что в связующей таблице есть одно поле, которое переместить в другое место не могу.
так и будем загадками?
Отвечай на вопросы:
- стандартное Много ко Много?
- где ссылка Много ко Много по которой делал?

TsyklopЯ делал как предлагали в гугле.
- ссылка где?
...
Рейтинг: 0 / 0
09.09.2018, 20:45
    #39700153
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
TsyklopЯ не для этого сюда написал
Есть всего 3 типа связей.
И нужно было написать всего одну фразу: У меня стандарт "Много ко Много" и вот в этой доке работает а у меня нет.
Болтовня одна.
...
Рейтинг: 0 / 0
09.09.2018, 20:54
    #39700154
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Есть хорошая лекция Алименкова на тему ORM. Где-то лектор произносит такую фразу что
" ORM/Hibernate делает разработчиков дураками ". С фразой я 150% согласен т.к видел очень
много жизненных ситуаций когда разработчик что-то очень-очень активно делает в БД
и фиксит много чего но не может сформулировать задачу и баги в формате Реляционной модели
и сущностей и связей.
...
Рейтинг: 0 / 0
09.09.2018, 21:39
    #39700169
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
вадяTsyklop,

не имея схемы связей таблиц - советовать трудно

Вот.
...
Рейтинг: 0 / 0
09.09.2018, 21:41
    #39700171
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Petro123TsyklopВся беда в том что в связующей таблице есть одно поле, которое переместить в другое место не могу.
так и будем загадками?
Отвечай на вопросы:
- стандартное Много ко Много?
- где ссылка Много ко Много по которой делал?

TsyklopЯ делал как предлагали в гугле.
- ссылка где?

1. уже написал выше что есть одно поле которое нужно хранить в связывающей таблице. Схему скинул выше.

2. Вот ссылка https://stackoverflow.com/a/29116687/4444092
...
Рейтинг: 0 / 0
09.09.2018, 23:18
    #39700182
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
[quot Tsyklop]Petro1232. Вот ссылка https://stackoverflow.com/a/29116687/4444092
Потому что перепер с ошибками.
...
Рейтинг: 0 / 0
09.09.2018, 23:29
    #39700183
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
TsyklopЕсть две сущности:

Проблема в том что я не могу получить список Contact когда получаю Stage. В Stage есть список StageContact, но мне нужен список Contact. Список StageContact мне приходиться загружать в любом случае иначе при преобразовании объекта в json в jackson происходит ошибка. Но если я получаю по загрузка выполняется бесконечно ибо в Stage который в StageContact есть список. И так дальше в глубь. В итоге выходит переполнение стека.

Как сделать что бы все было нормально? для меня главное получить список Contact.

Можно сделать выборку чисто по StageContact, но штука в том что мне хотелось что бы список Contact-ов был в Stage.
Дочитал до конца. А вся проблема в неправильном построении модели. Таблица связи не должна являться объектом (что по умолчанию и происходит), это вспомогательный объект. А если есть желание пользоваться кривой моделью, то хотя бы научиться писать правильные запросы, а не только ходить по ссылкам getEto().
...
Рейтинг: 0 / 0
09.09.2018, 23:43
    #39700185
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Пылинка,
Ну у других работает же. И через другую сущность. Нашел другой гайд и тоде через сущность. Так может покажете как это без сущности делать?
...
Рейтинг: 0 / 0
10.09.2018, 00:14
    #39700186
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,
зачем мне это делать, вы даже не соизволили прочитать что я уже написал
1) ошибка у вас в переписывании образцов (существенная или нет - не проверял)
2) есть простой выход - попробовать получать список запросом

Я ВООБЩЕ не понимаю проблемы. То что я понял? Как я понял, проблема вообще не в хибернейте, а в том как к получившейся кривой модели цепляется JSON? Ну тогда нужно добавить метод getContacts(). Или писать что то вручную - не достойно внимания? А то вы уже натянули сову и одновременно пытаетесь пользоваться самыми примитивными средствами автоматизации процесса. Хотите чего большего чем простое выдергивание объектов по связям - придется немного поработать.
...
Рейтинг: 0 / 0
10.09.2018, 00:19
    #39700187
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,
Извиняюсь - не ознакомился ранее с вашим послужным списком (99 вопросов за год). Присединяюсь к коллеге - "Читая Ваши сообщения, у меня не покидает ощущение, что либо Вы - тролль, либо студент, который привык списывать и уверенный, что кто-то за Вас будет делать Вашу работу. И думать за Вас."
...
Рейтинг: 0 / 0
10.09.2018, 01:22
    #39700192
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Пылинка, удачи думать как все и придумывать не зная как оно на самом деле и слушать кого не попадя. Говорить и я могу много чего. А взять и привести код слабо да? Только словами и можно унижать и т.д. человека. Покажи что умнее, что я вот не так сделал, на примере покажи а не на словах. И текст я читаю внимательно, но в твоей истории жизни копаться не буду, уж много чести да и время на это убивать как-то жалко. Это вам больше нечем занятся кроме как шарится по историям. Советчик всезнающий.
...
Рейтинг: 0 / 0
10.09.2018, 01:32
    #39700193
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Закрыто. Справился сам. Только время тут убил на выслушивания хрени всякой.

вадя, спасибо. Хоть один человек нормально помогает.
...
Рейтинг: 0 / 0
10.09.2018, 01:38
    #39700194
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Модет и я конечно не прав где-то, но об этом модно сказать нормально а не.. как вы это делаете.

И "тролль, либо студент, который привык списывать и уверенный, что кто-то за Вас будет делать Вашу работу. И думать за Вас".

- я не студент
- я не троллль
- думали ща меня родители когда я был ребенком, сейчас думаю сам себя. Представьте себе. Или это не ведомо тем кто это писал?
...
Рейтинг: 0 / 0
10.09.2018, 02:55
    #39700196
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Tsyklop,
нн надо дуться, тебя нормально направляли. побудешь несколько лет тут и поймешь что и почему,
...
Рейтинг: 0 / 0
10.09.2018, 07:41
    #39700220
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
TsyklopЗакрыто. Справился сам. Только время тут убил на выслушивания хрени всякой.
вадя, спасибо. Хоть один человек нормально помогает.
А решение где? )).
Будь мужественным и стойким) и приведи решение вопроса.
Это форум.
...
Рейтинг: 0 / 0
10.09.2018, 08:29
    #39700228
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
вадяTsyklop,
нн надо дуться, тебя нормально направляли. побудешь несколько лет тут и поймешь что и почему,
а кто дулся? просто задолбало. кто ж это направлял нормально? ткни пальцем пожалуйста
...
Рейтинг: 0 / 0
10.09.2018, 08:31
    #39700229
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
Petro123А решение где? )).
Будь мужественным и стойким) и приведи решение вопроса.
Это форум.
еще что? как он человек выше отказывается привести пример кода, а упорно чет доказывает. то чего мне париться тогда? все ж такие правильные тут. Все все знают, но только на словах.
...
Рейтинг: 0 / 0
10.09.2018, 08:54
    #39700236
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка данных из двух таблиц через третью Hibernate
TsyklopPetro123А решение где? )).
Будь мужественным и стойким) и приведи решение вопроса.
Это форум.
еще что? как он человек выше отказывается привести пример кода, а упорно чет доказывает. то чего мне париться тогда? все ж такие правильные тут. Все все знают, но только на словах.я понял.
Вы все такие сякие, а я сам свою ошибку нашел и вам не скажу.
Удачи тебе) LOL.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Выборка данных из двух таблиц через третью Hibernate / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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