Данные пружины реализуют пользовательский репозиторий с абстрактным классом в серединеJAVA

Программисты JAVA общаются здесь
Anonymous
Данные пружины реализуют пользовательский репозиторий с абстрактным классом в середине

Сообщение Anonymous »

Мне нужно реализовать фильтрацию во всех предприятиях.

Код: Выделить всё

interface RepositoryFilter {
fun findAllByFilter(filter: Filter, pageable: Pageable): PageImpl
}
< /code>
абстрактный класс, который реализует несколько методов, используемых в реализации Findallbyfilter: < /p>
abstract class AbstractRepositoryFilter(
private val jdbcTemplate: NamedParameterJdbcTemplate
) : RepositoryFilter {

override fun findAllByFilter(filter: Filter, pageable: Pageable): RestResponsePage {
val sql = initSqlQuery() // to be implemented in concrete class
val params = mutableMapOf()

appendFilterParams(filter, sql, params) // to be implemented in concrete class

val total = countFiltered(sql, params) // is implemented in AbstractRepositoryFilter

val result = collectFiltered(sql, params) // to be implemented in concrete class

return RestResponsePage(result, pageable, total)
}

}
< /code>
Concrete Class, который реализует функциональность для конкретной сущности (событие): < /p>
class RepositoryFilterImpl(
jdbcTemplate: NamedParameterJdbcTemplate
) : AbstractRepositoryFilter(jdbcTemplate) {

override fun initSqlQuery(): StringBuilder {
// implemention
}

override fun appendFilterParams(filter: EventFilter, sql: StringBuilder, params: MutableMap) {
// implemention
}

override fun collectFiltered(sql: StringBuilder, params: MutableMap): List
{
// implemention
}
}
< /code>
Репозиторий результата: < /p>
@Repository
interface EventRepository : CrudRepository, RepositoryFilter
< /code>
Однако я получаю ту же ошибку, пытаясь скомпилировать это: < /p>
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'filter' found for type 'Event'
at org.springframework.data.mapping.PropertyPath.(PropertyPath.java:94) ~[spring-data-commons-3.4.2.jar:3.4.2]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:455) ~[spring-data-commons-3.4.2.jar:3.4.2]
Я хочу избежать кода шаблона, поэтому я попытался использовать абстрактный класс ...


Подробнее здесь: https://stackoverflow.com/questions/795 ... the-middle

Вернуться в «JAVA»