У меня есть 3 таблицы, которые связаны друг с другом с помощью JsonBackReference. Я сталкиваюсь с проблемами при создании запроса для извлечения некоторых строк путем объединения этих таблиц
Структура всех таблиц похожа на
Table1Entity -> id, Var1_1, var2_1, Var3_1
Table2Entity -> id, var1_2, Var2_2, Var3_2, Table1_Entity_Id
Table3Entity -> id, var1_3, Var2_3, Var3_3, Table2_Entity_Id
Определение фактических объектов не имеет никакого поля, подобного Table1_Entity_Id. Они определены как
@ Entity publi c class Table1Entity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
private String Var1_1;
private String Var2_1;
private String Var3_1;
@OneToMany(mappedBy = "Table1Entity", cascade = CascadeType.ALL)
@JsonManagedReference("table1Entity-table2s")
private List<Table2Entity> Table2s = new LinkedList<>();
@ Entity publi c class Table2Entity {
@ManyToOne() @JsonBackReference("table1Entity-table2s")
Table2Entity table2Entity;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
private String Var1_2;
private String Var2_2;
private String Var3_2;
@OneToMany(mappedBy = "table2", cascade = CascadeType.ALL)
@JsonManagedReference("table2-table3s")
private List<Table3Entity> table3s = new LinkedList<>();
@ Entity publi c класс Table3Entity {
@ManyToOne() @JsonBackReference("table2-table3s")
ReportTaskEntity table2;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
private String Var1_3;
private String Var2_3;
private String Var3_3;
publi c интерфейс Table1Repository расширяет JpaRepository {
TestEntity findByVar1_1(String var1_1);
@Query("select t1 from Table1Entity t1, Table2Entity t2, Table3Entity t3"
+ " where t1.Var1_1 = :var1_1 and"
+ " t3.Table2_Entity_Id = t2.id and"
+ " t2.Table1_Entity_Id = t1.id and"
+ " t3.Var3_3 = :var3_3")
List<TestEntity>
findByVar1_1AndVar3_3(@Param("var1_1") String var1_1, @Param("var3_3") String var3_3);
Функция FindByVar1_1 работает нормально, но пока работает код построить функцию findByVar1_1AndVar3_3 получает ошибку как
. Причина: org.hibernate.QueryException: не удалось разрешить свойство: Table2_Entity_Id of: entity.Table3Entity
Эта команда работает нормально, когда я работаю это в моей базе данных напрямую. Это связано с тем, что поле Table2_Entity_Id присутствует в таблице, но оно явно отсутствует в определении сущности. Есть ли проблема с определением моей сущности, но весь мой другой код работает с этим определением.
Может кто-нибудь, пожалуйста, помогите.