#16 board : querydsl - api list filtered(QuerydslPredicateExecutor, QuerydslBinderCustomizer)
This commit is contained in:
@@ -1,9 +1,27 @@
|
||||
package com.example.board.repository;
|
||||
|
||||
import com.example.board.domain.ArticleComment;
|
||||
import com.example.board.domain.QArticleComment;
|
||||
import com.querydsl.core.types.dsl.DateTimeExpression;
|
||||
import com.querydsl.core.types.dsl.StringExpression;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
|
||||
import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer;
|
||||
import org.springframework.data.querydsl.binding.QuerydslBindings;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
|
||||
@RepositoryRestResource
|
||||
public interface ArticleCommentRepository extends JpaRepository<ArticleComment, Long> {
|
||||
public interface ArticleCommentRepository extends
|
||||
JpaRepository<ArticleComment, Long>,
|
||||
QuerydslPredicateExecutor<ArticleComment>,
|
||||
QuerydslBinderCustomizer<QArticleComment>
|
||||
{
|
||||
@Override
|
||||
default void customize(QuerydslBindings bindings, QArticleComment root) {
|
||||
bindings.excludeUnlistedProperties(true);
|
||||
bindings.including(root.content, root.createdAt, root.createdBy);
|
||||
bindings.bind(root.content).first(StringExpression::containsIgnoreCase);
|
||||
bindings.bind(root.createdAt).first(DateTimeExpression::eq);
|
||||
bindings.bind(root.createdBy).first(StringExpression::containsIgnoreCase);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,30 @@
|
||||
package com.example.board.repository;
|
||||
|
||||
import com.example.board.domain.Article;
|
||||
import com.example.board.domain.QArticle;
|
||||
import com.querydsl.core.types.dsl.DateTimeExpression;
|
||||
import com.querydsl.core.types.dsl.StringExpression;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
|
||||
import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer;
|
||||
import org.springframework.data.querydsl.binding.QuerydslBindings;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
|
||||
@RepositoryRestResource
|
||||
public interface ArticleRepository extends JpaRepository<Article, Long> {
|
||||
public interface ArticleRepository extends
|
||||
JpaRepository<Article, Long>,
|
||||
QuerydslPredicateExecutor<Article>,
|
||||
QuerydslBinderCustomizer<QArticle>
|
||||
{
|
||||
@Override
|
||||
default void customize(QuerydslBindings bindings, QArticle root) {
|
||||
bindings.excludeUnlistedProperties(true);
|
||||
bindings.including(root.title, root.content, root.hashtag, root.createdAt, root.createdBy);
|
||||
// bindings.bind(root.title).first(StringExpression::likeIgnoreCase); // like '${v}'
|
||||
bindings.bind(root.title).first(StringExpression::containsIgnoreCase); // like '%${v}%'
|
||||
bindings.bind(root.content ).first(StringExpression::containsIgnoreCase);
|
||||
bindings.bind(root.hashtag).first(StringExpression::containsIgnoreCase);
|
||||
bindings.bind(root.createdAt).first(DateTimeExpression::eq);
|
||||
bindings.bind(root.createdBy).first(StringExpression::containsIgnoreCase);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user