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

Код: 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
Выборка данных из двух таблиц через третью Hibernate
    #39700134
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Есть справочник Сотрудники и справочник Товары.
Отношения Много ко Много через Заказы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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