Не могли бы вы помочь мне решить одну спящую проблему? Я пытаюсь сделать 1 проект для обучения, но ударил здесь.
У меня есть 3 сущности с отношением OneToMany, как показано ниже:
1) Class Period {
@Id
private int periodId;
private LocalDate startDate;
private LocalDate endDate;
@OneToMany(.., mappedBy="period")
Set<Tag> tags;
}
2) Class Tag {
@Id
private int tagId;
@OneToMany(.. , mappedBy = "tag")
Set<Transaction> transactions;
@ManyToOne
private Period period;
}
3) class Transaction {
@Id
private int transactionId;
@ManyToOne
private Tag tag;
}
Теперь то, что я хочу, для определенного периода, я хочу получить все связанные теги и все связанные транзакции. Но всякий раз, когда я запрашиваю, он всегда возвращает Period и Tag, но транзакции пустые.
Этот запрос возвращает только period / tag. Транзакция пуста.
"from Period where startDate = :start and endDate =: endDate"
{
{
period {
tags: {
tag: {
transactions: [] //empty here. It should show value
}
}
}
}
Но когда я использовал объединение, он получит значения в парах
"from Period pd, Tag tag, Transaction tr JOIN pd.tags JOIN tag.transactions JOIN tr where startDate = :start and endDate =: endDate and pd = tag.period and tag = transaction.tag"
like:
{
{ period -1 },
{ tag -1 },
{ transaction -1 },
{ period -1 },
{ tag -1 },
{ transaction-2 },
}
Я хочу получить результат как 1 со значением транзакции. Пожалуйста, помогите мне. Также он отлично работает с базой данных H2, но когда я перешел на postgress, он не работает должным образом.