Я не знаю, возможно ли это, но если нет, вы можете рассмотреть этот подход:
Вместо непосредственного использования свойств в @Query
в репозитории, вы можете использовать параметры в запросе, но когда вы вызываете реальный метод - вы можете предоставить значения от .properties
.
Представьте, что у вас есть простое хранилище:
public interface UserRepository extends JpaRepository<User, Long> {
// query with param
@Query("select u from User u where u.lastname = :lastname")
User findByLastname(@Param("lastname") String lastname);
}
Тогда, скажем, у вас есть Service
или Controller
, где вам нужно использовать Repository
- вы можете добавить туда свойства и передать их вашему методу:
@Service
public class UserService {
// this comes from .properties
@Value("${user.lastName}")
private String userLastName;
@Autowired
private UserRepository userRepository;
public User getUser() {
// you pass it as param to the repo method which
// injects it into query
return userRepository.findByLastname(userLastName);
}
}
Это всего лишь пример. Но я верю, что это может быть полезно.
Счастливого взлома :)