объединение двух таблиц в один класс Java с использованием только одной части составного ключа - PullRequest
0 голосов
/ 18 июня 2019

Есть две таблицы, обе имеют составные первичные ключи.Первая часть составного ключа такая же, вторая часть нет.Я хотел бы получить данные из 2-й таблицы в виде Collection <> в одном классе Java.

Пробовал OneToMany, ManyToOne, ManyToMany, mappedBy, JoinColumns в течение многих часов, но всегда получал различные ошибки.

Это всего лишь пример.

Table 1:
-------
articleId      (pk)
deliverDate    (pk)
[some_data]

Table 2:
-------
articleId      (pk)
customerId     (pk)
[other_data]

В SQL я легко могу написать что-то вроде этого:

mysql> select a.articleId, a.deliverDate, a.some_data,
              c.customerId, c.other_data
       from Article a, Customer c
       where a.articleId = c.articleId
       and   a.deliveryDate = someDate
       and   a.articleId = 12345;

Это довольно просто.

Теперь я хотел бы сделать то же самое с JPA, вот так:

public class ArticleDeliveryCustomer {

    @EmbeddedId
    protected ArticlePK pk;

    @???? OneOrMany to OneOrMany? Which option? JoinWhat? mappedWhat?
    private Collection<Customers> cust;
}

Что бы я ни пытался, ничего не вышло.Либо в то время, когда я пытаюсь развернуть приложение на сервере приложений (wildfly), либо, если развертывание прошло успешно, во время выполнения.

Я понятия не имею, как поручить JPA делать то, что требуется.Я уже начинаю задумываться, поддерживается ли это вообще.Отображение частей составного ключа в другую таблицу для возврата Collection <>?Теперь у меня действительно болит голова.

Я ожидаю один объект класса ArticleDeliveryCustomer, который содержит коллекцию <> всех customerIds для конкретного articleId & deliveryDate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...