powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring data left join как ? для findOne
3 сообщений из 3, страница 1 из 1
spring data left join как ? для findOne
    #39183943
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день !

есть простая объектная модель :

Код: java
1.
2.
3.
4.
5.
6.
public class AdsInfo extends  AbstractAuditEntity<AdsInfo> implements Serializable {
...
   @JoinColumn(name = "game_id", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    private Game gameId;
}



есть репозиторий extends JpaRepository<T, ID>,JpaSpecificationExecutor<T>


и все бы хорошо , но Хибернейт генерит такой код на c inner join

repository.findOne(id);

а нужен left join

Код: plsql
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.
select
        adsinfo0_.id as id1_4_0_,
        adsinfo0_.created_by as created_2_4_0_,
        adsinfo0_.created_date as created_3_4_0_,
        adsinfo0_.last_modified_by as last_mod4_4_0_,
        adsinfo0_.last_modified_date as last_mod5_4_0_,
        adsinfo0_.version as version6_4_0_,
        adsinfo0_.ads_info_text as ads_info7_4_0_,
        adsinfo0_.agent_ora_id as agent_or8_4_0_,
        adsinfo0_.commentary as commenta9_4_0_,
        adsinfo0_.game_id as game_id15_4_0_,
        adsinfo0_.max_date as max_dat10_4_0_,
        adsinfo0_.max_draw_id as max_dra11_4_0_,
        adsinfo0_.min_date as min_dat12_4_0_,
        adsinfo0_.min_draw_id as min_dra13_4_0_,
        adsinfo0_.state as state14_4_0_,
        game1_.id as id1_5_1_,
        game1_.arm_url as arm_url2_5_1_,
        game1_.product_id as product_3_5_1_,
        game1_.product_name as product_4_5_1_ 
    from
        ads_info adsinfo0_ 
    inner join
        game game1_ 
           on adsinfo0_.game_id=game1_.id 
    where
        adsinfo0_.id=6



и получаем если game == null

мы вытащили null

Как получить объект с заполненными полями и game = null ?
...
Рейтинг: 0 / 0
spring data left join как ? для findOne
    #39183953
xifr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,

у вас же стоит optional = false
поэтому по модели Game должен быть всегда
...
Рейтинг: 0 / 0
spring data left join как ? для findOne
    #39183982
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xifrAtum1,

у вас же стоит optional = false
поэтому по модели Game должен быть всегда

ООО спасибо большое !

просто забыл ;( про optional = false....

концепция изменилась и теперь значение null для game означает все игры :( ( полная жесть ...)

убрал optional = false все ок

Код: 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.
    select
        adsinfo0_.id as id1_4_0_,
        adsinfo0_.created_by as created_2_4_0_,
        adsinfo0_.created_date as created_3_4_0_,
        adsinfo0_.last_modified_by as last_mod4_4_0_,
        adsinfo0_.last_modified_date as last_mod5_4_0_,
        adsinfo0_.version as version6_4_0_,
        adsinfo0_.ads_info_text as ads_info7_4_0_,
        adsinfo0_.agent_ora_id as agent_or8_4_0_,
        adsinfo0_.commentary as commenta9_4_0_,
        adsinfo0_.game_id as game_id15_4_0_,
        adsinfo0_.max_date as max_dat10_4_0_,
        adsinfo0_.max_draw_id as max_dra11_4_0_,
        adsinfo0_.min_date as min_dat12_4_0_,
        adsinfo0_.min_draw_id as min_dra13_4_0_,
        adsinfo0_.state as state14_4_0_,
        game1_.id as id1_5_1_,
        game1_.arm_url as arm_url2_5_1_,
        game1_.product_id as product_3_5_1_,
        game1_.product_name as product_4_5_1_ 
    from
        ads_info adsinfo0_ 
    left outer join
        game game1_ 
            on adsinfo0_.game_id=game1_.id 
    where
        adsinfo0_.id=?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring data left join как ? для findOne
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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