У меня есть сущность, скажем, A, которая имеет поле, представляющее собой список другой сущности, скажем, B.
Это A:
@Entity
@Table(name = "a")
public class A implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@ManyToMany
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@JoinTable(name = "a_b",
joinColumns = @JoinColumn(name="as_id", referencedColumnName="id"),
inverseJoinColumns = @JoinColumn(name="bs_id", referencedColumnName="id"))
private Set<B> bs = new HashSet<>();
}
Это B:
@Entity
@Table(name = "b")
public class B implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@SequenceGenerator(name = "sequenceGenerator")
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@Column(name = "description")
private String description;
}
Теперь я пытаюсь добиться того, чтобы иметь возможность запрашивать все записи a из A, имея сущность b из B в a.bs
Thaфактический запрос показан ниже:
@Repository
public interface ARepository extends JpaRepository<A, Long> {
@Query("SELECT DISTINCT a FROM A a LEFT JOIN FETCH a.bs bs WHERE :b MEMBER OF bs")
List<A> findAllByB(@Param("b") B b);
}
Разве это не должно работать так?
Однако я получаю следующую ошибку, я положил ее на pastebin из-за превышенияРазмеры поста:
Журнал