Я хотел бы сохранить метод в классе помощника и вызвать этот метод из другого класса. Метод также извлекает данные из репозитория jpa.
По какой-то причине, когда я вызываю метод из вспомогательного класса, я получаю сообщение об ошибке: Не удается разрешить метод 'getDocumentListByProduit' в 'DocumentHelper'. Имя метода также не отображается в автозаполнении IDE. Похоже, что метод не отображается по какой-то причине. Любые намеки почему? заранее спасибо.
класс, откуда я sh вызову метода:
@Entity
@Table(name = "document", schema = "table_name")
public class Document {
private int id;
private String url;
private String type;
private String titre;
private String description;
@Autowired
private DocumentHelper dh;
...
public Map<String, List<Document>> getDocumentListByProduit(int id){
Map<String, List<Document>> ret = dh.getDocumentListByProduit(id);
return ret;
}
вспомогательный класс:
@Component
public class DocumentHelper {
@Autowired
private DocumentRepository dr;
public DocumentHelper() {
}
public Map<String, List<Document>> getDocumentListByProduit(int id) {
Map<String, List<Document>> ret = new HashMap<>();
List<Document> listImg = new ArrayList<>();
List<Document> listOther = new ArrayList<>();
List<Document> dList = new ArrayList<>();
try {
dList = dr.getDocumentListByProduit(id);
for (Document tDoc : dList) {
if (tDoc.getType().equals("image")) {
listImg.add(tDoc);
} else {
listOther.add(tDoc);
}
}
ret.put("imageCollection", listImg);
ret.put("otherCollection", listOther);
} catch (Exception e) {
throw new DAOException("Une erreur est survenue : " + e.getMessage());
}
return ret;
}
}
затем репозиторий:
public interface DocumentRepository extends JpaRepository<Document, Integer> {
// in method getDocumentListByProduit in DocumentHelper
@Query(value = "SELECT * FROM DOCUMENT D, DOCUMENT_PRODUIT DP WHERE D.id = DP.id_document AND DP.id_produit = :id_produit;", nativeQuery = true)
List<Document> getDocumentListByProduit(@Param("id_produit") int id_produit);
}