Pessoal tenho uma classe menu que tem um autorelacionamento, até aí blz a query também funciona, o problema é que no log que eu mando exibir ele tá fazendo muitas vezes a consulta e eu queria que buscasse só id pai.
Seguem classes.
@Entity(name = "tb_menu")
public class Menu {
@Id
@Column(name = "menu_id")
private Integer menuId;
@Column(name="menu_titulo")
private String menuTitulo;
@Column(name = "menu_url")
private String menuUrl;
@Column(name = "menu_id_fk", nullable = true)
private Integer menuFk;
@OneToMany
@JoinColumn(name = "menu_id_fk")
private List<Menu> subMenus;
}
public interface MenuRepository extends JpaRepository<Menu, Integer> {
public List<Menu> findDistinctBySubMenusNotNull();
}
@Service
public class MenuService {
@Autowired
private MenuRepository menuRepository;
public List<Menu> listarMenu() {
return menuRepository.findDistinctBySubMenusNotNull();
}
}
Log spring
2018-03-05 16:49:00.297 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
/* select
distinct generatedAlias0
from
tb_menu as generatedAlias0
left join
generatedAlias0.subMenus as generatedAlias1
where
generatedAlias1 is not null / select
distinct menu0_.menu_id as menu_id1_4_,
menu0_.menu_id_fk as menu_id_2_4_,
menu0_.menu_titulo as menu_tit3_4_,
menu0_.menu_url as menu_url4_4_
from
tb_menu menu0_
left outer join
tb_menu submenus1_
on menu0_.menu_id=submenus1_.menu_id_fk
where
submenus1_.menu_id is not null
Hibernate:
/ select
distinct generatedAlias0
from
tb_menu as generatedAlias0
left join
generatedAlias0.subMenus as generatedAlias1
where
generatedAlias1 is not null */ select
distinct menu0_.menu_id as menu_id1_4_,
menu0_.menu_id_fk as menu_id_2_4_,
menu0_.menu_titulo as menu_tit3_4_,
menu0_.menu_url as menu_url4_4_
from
tb_menu menu0_
left outer join
tb_menu submenus1_
on menu0_.menu_id=submenus1_.menu_id_fk
where
submenus1_.menu_id is not null
2018-03-05 16:49:00.299 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
2018-03-05 16:49:00.300 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
2018-03-05 16:49:00.302 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
2018-03-05 16:49:00.302 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
2018-03-05 16:49:00.303 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
2018-03-05 16:49:00.303 DEBUG 11600 — [nio-9000-exec-3] org.hibernate.SQL :
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?
Hibernate:
select
submenus0_.menu_id_fk as menu_id_2_4_0_,
submenus0_.menu_id as menu_id1_4_0_,
submenus0_.menu_id as menu_id1_4_1_,
submenus0_.menu_id_fk as menu_id_2_4_1_,
submenus0_.menu_titulo as menu_tit3_4_1_,
submenus0_.menu_url as menu_url4_4_1_
from
tb_menu submenus0_
where
submenus0_.menu_id_fk=?