{"id":5789,"date":"2022-07-22T18:00:31","date_gmt":"2022-07-22T09:00:31","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5789"},"modified":"2023-01-07T14:31:42","modified_gmt":"2023-01-07T05:31:42","slug":"querydsl-%ec%8b%9c%ec%9e%91%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5789","title":{"rendered":"QueryDSL \uc2dc\uc791\ud558\uae30"},"content":{"rendered":"<h1>QueryDSL \uc2dc\uc791\ud558\uae30<\/h1>\n<p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<\/p>\n<h2>QueryDslConfig<\/h2>\n<pre><code class=\"language-java\">@Configuration\npublic class QueryDslConfig {\n\n    @PersistenceContext\n    private EntityManager entityManager;\n\n    @Bean\n    public JPAQueryFactory jpaQueryFactory() {\n        return new JPAQueryFactory(entityManager);\n    }\n}<\/code><\/pre>\n<h2>Company<\/h2>\n<pre><code class=\"language-java\">@Getter\n@Setter\n@Entity\n@NoArgsConstructor\n@Table(name = &quot;tbl_company&quot;, catalog = &quot;db_account&quot;)\npublic class Company extends BaseTimeEntity implements Persistable&lt;Long&gt; {\n\n    @Id\n    @GeneratedValue(strategy = GenerationType.IDENTITY)\n    private Long companyId;\n\n    private String companyLoginId;\n\n    private String companyName;\n\n    @Column(nullable = false)\n    @Convert(converter = YNTypeConverter.class)\n    private YNType isUsing = YNType.Y;\n\n    @Override\n    public Long getId() {\n        return companyId;\n    }\n\n    @Override\n    public boolean isNew() {\n        return getRegdate() == null;\n    }\n}<\/code><\/pre>\n<h2>CompanyRepositoryCustom<\/h2>\n<p>\ud074\ub798\uc2a4\uba85\uc740 \uc544\ubb34 \uc774\ub984\uc774\ub098 \uc9c0\uc5b4\ub3c4 \uc0c1\uad00\uc5c6\uc9c0\ub9cc, \ubcf4\ud1b5\uc740 <code>Repository\uba85 + Custom<\/code> \uc73c\ub85c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-java\">public interface CompanyRepositoryCustom {\n\n    List&lt;Company&gt; search();\n}<\/code><\/pre>\n<h2>CompanyRepositoryImpl<\/h2>\n<p>\ud074\ub798\uc2a4\uba85\uc740 <code>Repository\uba85 + Impl<\/code> \uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-java\">import static kr.pe.skyer9.warehouse.account.domain.QCompany.company;\n\npublic class CompanyRepositoryImpl extends QuerydslRepositorySupport implements CompanyRepositoryCustom {\n\n    private final JPAQueryFactory jpaQueryFactory;\n\n    public CompanyRepositoryImpl(JPAQueryFactory jpaQueryFactory) {\n        super(Company.class);\n        this.jpaQueryFactory = jpaQueryFactory;\n    }\n\n    @Override\n    public List&lt;Company&gt; search() {\n        System.out.println(&quot;DSL Called&quot;);\n        return jpaQueryFactory\n                .selectFrom(company)\n                .where(company.companyLoginId.eq(&quot;string&quot;)).fetch();\n    }\n}<\/code><\/pre>\n<h2>CompanyRepository<\/h2>\n<pre><code class=\"language-java\">public interface CompanyRepository extends JpaRepository&lt;Company, Long&gt;, CompanyRepositoryCustom {\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>QueryDSL \uc2dc\uc791\ud558\uae30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=5789\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-5789","post","type-post","status-publish","format-standard","hentry","category-querydsl"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5789"}],"version-history":[{"count":30,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5789\/revisions"}],"predecessor-version":[{"id":7385,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/5789\/revisions\/7385"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}