All Projects → coupang → spring-data-requery

coupang / spring-data-requery

Licence: other
Spring Data with Requery

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to spring-data-requery

Spring Data Jpa Entity Graph
Spring Data JPA extension allowing full dynamic usage of EntityGraph on repositories
Stars: ✭ 221 (+413.95%)
Mutual labels:  orm, spring-data, jpa
Hunt Entity
An object-relational mapping (ORM) framework for D language (Similar to JPA / Doctrine), support PostgreSQL and MySQL.
Stars: ✭ 51 (+18.6%)
Mutual labels:  orm, jpa
Hibernate Basics
Samples for "Hibernate, how the magic is really done?" talk
Stars: ✭ 44 (+2.33%)
Mutual labels:  orm, jpa
Hibernate Performance
Samples for "Hibernate performance tuning" talk
Stars: ✭ 87 (+102.33%)
Mutual labels:  orm, jpa
Jeddict
Jakarta EE 8 (Java EE) & MicroProfile 3.2 application generator and modeler
Stars: ✭ 358 (+732.56%)
Mutual labels:  orm, jpa
Jooq
jOOQ is the best way to write SQL in Java
Stars: ✭ 4,695 (+10818.6%)
Mutual labels:  orm, jpa
Ebean
Ebean ORM
Stars: ✭ 1,172 (+2625.58%)
Mutual labels:  orm, jpa
Springboot Registration Login Theperfectexample
Login & Signup tutorial for every website ,mixes a lot of microservices together with the latest spring framework api in combined with full security
Stars: ✭ 89 (+106.98%)
Mutual labels:  spring-data, jpa
Spring Kotlin Exposed
playground for spring-boot 2.*, kotlin , jetbrains-exposed, postgres, jsonb, flyway, docker
Stars: ✭ 106 (+146.51%)
Mutual labels:  orm, jpa
Hibernate Reactive
A reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database.
Stars: ✭ 167 (+288.37%)
Mutual labels:  orm, jpa
Kotlin Jpa Specification Dsl
This library provides a fluent DSL for querying spring data JPA repositories using spring data Specifications (i.e. the JPA Criteria API), without boilerplate code or a generated metamodel.
Stars: ✭ 203 (+372.09%)
Mutual labels:  spring-data, jpa
spring-boot-java-swing-reservations
The project aims to present how to connect Spring Boot 2 and Java Swing GUI widget toolkit. All application dependencies are provided by Docker Compose. There are also static code analysis tools like FindBugs and Checkstyle.
Stars: ✭ 86 (+100%)
Mutual labels:  spring-data, jpa
Spring Data Examples
Examples for using Spring Data for JPA, MongoDB, Neo4j, Redis
Stars: ✭ 181 (+320.93%)
Mutual labels:  spring-data, jpa
Hibernate Orm
Hibernate's core Object/Relational Mapping functionality
Stars: ✭ 4,806 (+11076.74%)
Mutual labels:  orm, jpa
Spring Data Jpa
Simplifies the development of creating a JPA-based data access layer.
Stars: ✭ 2,238 (+5104.65%)
Mutual labels:  spring-data, jpa
Query Validator
Compile time validation for HQL and JPQL queries in Java code
Stars: ✭ 70 (+62.79%)
Mutual labels:  orm, jpa
Angularjs Springmvc Sample Boot
A RESTful sample using Spring Boot, Spring MVC, Spring Data and Angular/Bootstrap.
Stars: ✭ 309 (+618.6%)
Mutual labels:  spring-data, jpa
Hibernate Springboot
Collection of best practices for Java persistence performance in Spring Boot applications
Stars: ✭ 589 (+1269.77%)
Mutual labels:  spring-data, jpa
Jplusone
Tool for automatic detection and asserting "N+1 SELECT problem" occurences in JPA based Spring Boot Java applications and finding origin of JPA issued SQL statements in general
Stars: ✭ 91 (+111.63%)
Mutual labels:  orm, jpa
Spring-Boot-2
Spring Boot 2.x examples
Stars: ✭ 33 (-23.26%)
Mutual labels:  spring-data, jpa

spring-data-requery

Build Status jcenter

Spring Data for requery

requery는 대부분의 DB를 지원하는 Lightweight ORM Library 입니다. 또한 Java, Kotlin, Android 등 JVM 환경과 Android 환경 모두를 지원하여, 가벼우면서, 성능 좋은 라이브러리입니다.

참고: Requery Overview

Branch Information

  • 1.5.x : Support Spring Boot 1.5.x (Not provided currently)
  • 2.x : Support Spring Boot 2.0.x
  • 2.1.x : Support Spring Boot 2.1.x

Setup

Maven

Add jcenter repository

<repositories>
    <repository>
        <id>jcenter</id>
        <url>http://jcenter.bintray.com</url>
    </repository>
</repositories>

Add dependency

<dependency>
    <groupId>com.coupang</groupId>
    <artifactId>spring-data-requery</artifactId>
    <version>2.0.3</version>
</dependency>

Gradle

Use jcenter repository only

repository {
    jcenter()
}
dependencies {
    // for Java
    compile "com.coupang:spring-data-requery:2.0.3"
    
    // for Kotlin
    compile "com.coupang:spring-data-requery-kotlin:2.0.3"
    
    // for Spring Boopt 2
    compile "com.coupang:spring-boot-starter-data-requery:2.0.3"
}

제공 모듈

현재 branch 2.x 에서 제공하는 기능은 spring boot 2.0.x 을 사용하여 제작되었습니다. 향후 branch 1.x 에서는 spring boot 1.x 기반으로 제공될 예정입니다.

spring-data-requery

Java를 이용한 Backend 개발 시, Spring Data의 다양한 조회를 자동 생성하는 기능을 제공합니다.

  • Query By Property
  • Query By Native Query
  • Query By Example

제한 사항

현재 requery 기능의 한계로 다음과 같은 기능은 지원되지 않습니다.

  • Named Parameter (추후 지원 예정, 또는 spring-data-jdbc를 이용할 예정)
  • Association property 에 대한 질의 생성 (requery가 JOIN에 대해서는 선언적 정의를 지원하지 않으므로, default method로 구현해야 합니다)

spring-boot-starter-data-requery

spring-data-requery 를 Spring Boot 환경에서 쉽게 사용할 수 있도록 Auto Configuration 기능을 제공합니다.

spring boot 환경설정에서 다음과 같이 설정하면 쉽게 사용 가능합니다.

# spring-data-requery
spring.data.requery.modelName = org.springframework.boot.autoconfigure.data.requery.domain.Models.DEFAULT
spring.data.requery.batchUpdateSize = 50
spring.data.requery.statementCacheSize = 512
# if no need to create schema, make `tableCreationMode` to comments
spring.data.requery.tableCreationMode = CREATE_NOT_EXISTS

spring.datasource.hikari.driver-class-name = org.h2.Driver
spring.datasource.hikari.jdbc-url = jdbc:h2:mem:test
spring.datasource.hikari.username = sa

spring-data-requery-kotlin

spring-data-requery-kotlin 은 kotlin 언어를 위해 독립적으로 제작, 지원됩니다. Domain Entity 정의 시 Kotlin은 Java와 달리 Interface로 정의해야 하고, 이를 field가 아는 method로 인식하게 되어, 내부 구현 시 Java와 혼용하기 어렵습니다. 그리고, primitive type에 대한 처리가 Java와는 달라 추가적인 작업이 필요했습니다.

사용법은 Java보다 조금 더 간편합니다만, 다음과 같은 default method를 이용하여 custom query를 만들 때에 주의할 점이 있습니다.

Java에서는 default keyword를 지정하면 되지만, Kotlin에서는 @JvmDefault annotation을 지정해 주어야 합니다.

    @JvmDefault
    fun findColleaguesFor(userId: Int?): List<UserEntity> {
        return operations
            .select(UserEntity::class)
            .join(User_Colleagues::class).on(UserEntity::id eq User_Colleagues.USER_ID)
            .where(User_Colleagues.FRIEND_ID.eq(userId))
            .get()
            .toList()
    }

spring-boot-starter-data-requery-kotlin

추후 지원 예정

requery-phoenix

곧 지원 예정

Apache Phoenix를 requery를 이용하여 사용하기 위한 라이브러리입니다. HBase 가 INSERT, UPDATE 대신 UPSERT 만을 지원하므로, Apache Phoenix용 SQL문을 생성하도록 하는 라이브러리입니다.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].