Как сделать JPA объединением в одной-многих ситуациях? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть два объекта Outlet и продукты, имеющие отношения один ко многим, как указано ниже -

@Entity
public class Outlet{

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
Long id;

@Fetch (FetchMode.SELECT)
@OneToMany(mappedBy = "outletProduct",fetch = FetchType.LAZY)
List<Product> products;

и

@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
Boolean isActive;

@ManyToOne
@JoinColumn(name = "outletId")
Outlet outletProduct;

Теперь я хочу Аутлеты, где продукты isactive - это правда.

Я пишу следующие JPQL для-

 @Query("Select op From Outlet op  join op.products pro where pro.isActive=1  order by op.id")
 List<Outlet>  findAllByVarietiesPriceTimePeriodIn( );

Но я все еще получаю розетки с prodcuts isactive false. Пожалуйста, предложите.

Я хочу добиться результата, который придет из этого sql-запроса-

SELECT * FROM outlet join product on product.outlet_id= outlet.id where product.is_active=1 ;

1 Ответ

0 голосов
/ 21 декабря 2018

Я хочу Outlet, где есть хотя бы один продукт, но я не хочу, чтобы продукты, которые не активны, были ложными Прямо сейчас я получаю все продукты в списке

Это не рекомендуется , но будет работать с использованием JOIN FETCH:

Select op From Outlet op join fetch op.products pro where pro.isActive = 1 order by op.id
...