как получить данные только из одной таблицы и таблицы соединения во многих отношениях многие в спящем режиме - PullRequest
0 голосов
/ 08 ноября 2018

enter image description here

У меня отношения между многими и многими похожи, как между акциями и категориями, как показано на рисунке выше И поэтому у нас есть таблица соединений, которая называется stock_category.

Существуют следующие сущности:

public class Stock implements java.io.Serializable {
@Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "STOCK_ID")
    private Integer stockId;


@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinTable(name = "stock_category", joinColumns = { 
            @JoinColumn(name = "STOCK_ID", nullable = false, updatable = false) }, 
            inverseJoinColumns = { @JoinColumn(name = "CATEGORY_ID", 
                    nullable = false, updatable = false) })
private Set<Category> categories;

....

и

Category.java:

@Entity
@Table(name = "category")
public class Category implements java.io.Serializable {


@Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "CATEGORY_ID")
private Integer categoryId;


@ManyToMany(fetch = FetchType.LAZY, mappedBy = "categories")
private Set<Stock> stocks ;

............

Таким образом, в основном в нашем проекте у нас есть две сущности, которые во многих отношениях связаны (в большинстве случаев двунаправленно) друг с другом. Кроме того, у меня нет сущности таблицы соединения.

Мой вопрос:

1) Как получить данные только путем объединения stock и stock_category (таблицы соединений)? Я не хочу присоединяться к третьему столу. Поскольку у меня нет объекта таблицы соединений, я вынужден также присоединиться к третьей таблице, что вызывает проблемы с производительностью в нашем проекте. Мы используем критерии гибернации. Но я пытался сделать то же самое, используя Spring Data JPA, нативный запрос, HQL и т. Д., Но не смог достичь.

2) Могу ли я получать данные только и только из объединяющей таблицы, то есть stock_category, без объединения каких-либо дополнительных таблиц?

...