Я использую пружинный ботинок. Я использовал объединение трех объектов для получения данных из репозитория, но это показывает ошибку ниже ..
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'menuRightRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List...
Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List
Я использовал следующий код ..
мой первый сущность с именем MenuNameEntity ниже
@Entity
@Table(name = "MenuName")
public class MenuNameEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private String parentId;
private String menuName;
private String status;
// getter and setter
}
моя вторая сущность ниже
@Entity
@Table(name = "MenuChild")
public class MenuChildEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private String parentId;
private String childMenuName;
private String url;
private String status;
//getter and setter
}
Моя третья сущность ниже
@Entity
@Table(name = "MenuRight")
public class MenuRightEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private String companyId;
private String userId;
private String url;
private String status;
private String enqMode;
private String insertMode;
private String updateMode;
private String deleteMode;
//getter and setter
}
My MenuRightRepository ниже
public interface MenuRightRepo extends JpaRepository<MenuRightEntity, Long> {
@Query("select new com.rms.info.MenuRightResponse(m.companyId, m.userId,m.enqMode,m.insertMode,m.updateMode,m.deleteMode, p.parentId,c.childId,c.childMenuName,c.url) from MenuNameEntity p,MenuChildEntity c,MenuRightEntity m where p.parentId = c.parentId and p.status =1 and c.status =1 and c.url= m.url ")
List<MenuRightResponse> getMenuMenuRights();
}
Я использовал MenuRightResponse для привязки полученного значения из репозитория
package com.rms.info;
public class MenuRightResponse {
private String companyId= "";
private String userId= "";
private String enqMode= "";
private String insertMode= "";
private String updateMode= "";
private String deleteMode= "";
private String parentId= "";
private String childId= "";
private String childMenuName= "";
private String url= "";
public MenuRightResponse(String companyId, String userId, String enqMode, String insertMode, String updateMode,
String deleteMode, String parentId, String childId, String childMenuName, String url) {
super();
this.companyId = companyId;
this.userId = userId;
this.enqMode = enqMode;
this.insertMode = insertMode;
this.updateMode = updateMode;
this.deleteMode = deleteMode;
this.parentId = parentId;
this.childId = childId;
this.childMenuName = childMenuName;
this.url = url;
}
//getter and setter
}
, когда я вызвал getMenuMenuRights () в MenuRightRepo , он показывает ошибку выше. Я не использовал первичный и внешний ключ. В чем проблема кода. Пожалуйста, помогите мне