У меня есть ManyToMany, который я отобразил как это question.JPA 2: заказ, не работающий в ManyToMany с дополнительными полями
Пожалуйста, обратите внимание, что я удалил шаблонный для простоты
@Entity
class Person {
@OneToMany(mappedBy = "person")
@OrderBy("sort")
private List<PersonAddress> adresses = new ArrayList<>();
}
@Entity
class PersonAdress {
@EmbeddedId
private PersonAdressId id;
@Column
private int sort;
@ManyToOne
private Person person;
@ManyToOne
private Address address;
}
@Entity
class Address {
@OneToMany(mappedBy = "address")
@OrderBy("sort")
private List<PersonAddress> persons = new ArrayList<>();
}
@Embeddable
public class PersonAdressId implements Serializable {
@Column(name = "person_id")
private long personId;
@Column(name = "address_id")
private long addressId;
}
Я пытаюсь получить все АДРЕСА для человека, и для того, атрибут сортировки. Но по какой-то причине я получаю исключение или не сортирую его.
Я попытался следующие:
"select p from Person p where p.id=pid join fetch p.address a order by a.sort"
Я также попытался:
Person person = entityManager.find(Person.class, personId);
person.getAddress() //<-- This should use the @OrderBy, but I don't get it ordered nor does it print out order by in the output
Можно ли определить, почему он не работает?
и вы действительно посмотрели на вызов SQL? для этих 2 1-N отношений. Кроме того, как сказал 1 ответ, ваше сопоставление неверно. –