#java #spring-boot #spring-data-jpa #spring-data
Вопрос:
Я столкнулся с очень сложной проблемой.Поэтому мне нужен ваш вклад.
У нас есть общая библиотека запросов и ответов, которая имеет структуру из 2 папок для 2 разных регионов:
com.test.aisa
com.test.europe
Оба этих пакета имеют общую транзакцию имени сущности.java ( поскольку это распространено в разных регионах.Таким образом, внутри библиотеки была создана специальная структура пакета региона ).
Теперь у нас есть 2 приложения для весенней загрузки.Один для АЗИИ /один для ЕВРОПЫ.
В моем приложении ASIA SPRING BOOTAPP я написал следующее TransactionRepository.java. Вот код:
public interface TransactionRepository extends JpaRepository<com.test.asia.Transction,String>{
@Query("select ai from Transaction ai where ai.name : name")
Stream<Transction> findTransctionByName(@Param("name"));
}
Теперь проблема находится внутри @Query(«выберите ai из транзакции ai, где ai.name : имя») указывает на com.test.europe.Transaction.java.
Это не распознает поля, которые присутствуют как часть com.test.aisa.Transaction.java.
Например, в поле имя присутствует com.test.aisa.Операция.java ,а не в европейской версии. Отдыхайте везде, где он указывает на правильную сущность транзакции.Только внутри @Query это создает проблему.
Пожалуйста, помогите!!!!!!! Я никогда раньше не сталкивался с подобными проблемами.!!!
Ответ №1:
Вы можете сделать это следующим образом:
@Query("select ai from Transaction ai where ai.name= :name")
Вы забыли оператор равенства в условии where
Ответ №2:
Вы должны использовать полное имя класса в запросе jpa:
@Query("select ai from com.test.asia.Transaction ai where ai.name = :name")
Комментарии:
1. Нет, обычно вам не нужно указывать полное имя.