DAO oriented database mapping framework for Java 8+

Overview

Doma

Doma 2 is a database access framework for Java 8+. Doma has various strengths:

  • Verifies and generates source code at compile time using annotation processing.
  • Provides type-safe Criteria API.
  • Supports Kotlin.
  • Uses SQL templates, called "two-way SQL".
  • Has no dependence on other libraries.

Build Status docs javadoc Google group : doma-user project chat Twitter

Examples

Type-safe Criteria API

Written in Java 8:

Entityql entityql = new Entityql(config);
Employee_ e = new Employee_();
Department_ d = new Department_();

List<Employee> list = entityql
    .from(e)
    .innerJoin(d, on -> on.eq(e.departmentId, d.departmentId))
    .where(c -> c.eq(d.departmentName, "SALES"))
    .associate(e, d, (employee, department) -> {
        employee.setDepartment(department);
        department.getEmployeeList().add(employee);
    })
    .fetch();

Written in Kotlin:

val entityql = KEntityql(config)
val e = Employee_()
val d = Department_()

val list = entityql
    .from(e)
    .innerJoin(d) { eq(e.departmentId, d.departmentId) }
    .where { eq(d.departmentName, "SALES") }
    .associate(e, d) { employee, department ->
        employee.department = department
        department.employeeList += employee
    }
    .fetch()

See Criteria API for more information.

SQL templates

Written in Java 15:

@Dao
public interface EmployeeDao {

  @Sql(
    """
    select * from EMPLOYEE where
    /*%if salary != null*/
      SALARY >= /*salary*/9999
    /*%end*/
    """)
  @Select
  List<Employee> selectBySalary(BigDecimal salary);
}

See SQL templates for more information.

More Examples

Try Getting started.

For more complete examples, see simple-examples and spring-boot-jpetstore.

Installing

Gradle

For Java projects:

dependencies {
    implementation("org.seasar.doma:doma-core:2.45.0")
    annotationProcessor("org.seasar.doma:doma-processor:2.45.0")
}

For Kotlin projects, use doma-kotlin instead of doma-core and use kapt in place of annotationProcessor:

dependencies {
    implementation("org.seasar.doma:doma-kotlin:2.45.0")
    kapt("org.seasar.doma:doma-processor:2.45.0")
}

Maven

We recommend using Gradle, but if you want to use Maven, see below.

For Java projects:

...
<properties>
    <doma.version>2.45.0</doma.version>
</properties>
...
<dependencies>
    <dependency>
        <groupId>org.seasar.doma</groupId>
        <artifactId>doma-core</artifactId>
        <version>${doma.version}</version>
    </dependency>
</dependencies>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source> <!-- depending on your project -->
                <target>1.8</target> <!-- depending on your project -->
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.seasar.doma</groupId>
                        <artifactId>doma-processor</artifactId>
                        <version>${doma.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

For Kotlin projects, see Kotlin document.

Documentation

https://doma.readthedocs.io/

Forum

https://groups.google.com/g/doma-user

Chatroom

https://domaframework.zulipchat.com

Related projects

Major versions

Status and Repository

Version Status Repository Branch
Doma 1 stable https://github.com/seasarorg/doma/ master
Doma 2 stable https://github.com/domaframework/doma/ master

Compatibility matrix

Doma 1 Doma 2
Java 6 v
Java 7 v
Java 8 v v
Java 9 v
Java 10 v
Java 11 v
Java 12 v
Java 13 v
Java 14 v
Java 15 v
Comments
  • annotationProcessorについて(コンパイル時間関連)

    annotationProcessorについて(コンパイル時間関連)

    intellij idea,gradleによるビルド ,SpringBoot環境で利用しています。

    sqlテンプレート(doma関連のソース)を変更してビルドした場合compileJavaタスクの所要時間が増えてしまいます。20秒ほど

    普通のJavaソースを修正した場合は5秒以下で終わります。

    調べた結果doma関連のソースを修正した場合、関連ソース(xxDaoImpl,_Entityなど)を全作成し直すことがわかりました。(多分SQLテンプレートの検証も動いているかと思います。)

    もしかしたらanntationProcessorの機能ではないかもしれませんが、 なにかオプションなどを指定して(または他の方法でも)、修正があったファイルのみ再作成するようにする方法はありますでしょうか?

    なにかヒントでも構いませんので、よろしくお願いいたします。

    opened by hinoko58 13
  • EntityListenerをConfig.getEntityListener()で取得するようにしました

    EntityListenerをConfig.getEntityListener()で取得するようにしました

    これまでEntityListener実装クラスはEntityType実装クラスのコンストラクタ内でインスタンス化していました。 そのためDIコンテナを使用している場合にEntityListener実装クラスへはDIコンテナ管理オブジェクトをインジェクションできませんでした。

    この課題に対応するためConfigに新たにgetEntityListener(Class, Supplier)を追加し、EntityListener実装クラスのインスタンス取得処理をフックできるようにしました。

    このプルリクエストを投げるにあたって何点か気になる事があります。

    まず今回新たに追加したCacheSupplierの例外処理ですが、DomaExceptionでラップして再スローしています。 これはDomaExceptionのサブクラスを作成した方が良いでしょうか?

    またMessageに新たにDOMA5003およびDOMA5004を追加しましたが、これらのメッセージは適切でしょうか?

    最後に、ジェネリックなEntityListener実装クラスのClassインスタンスを取得する際、次のコードのようにキャストを二回重ねています。

    Class<FooListener<Bar>> __listenerClass = (Class<FooListener<Bar>>) (Class<?>) FooListener.class;
    

    これはFooListener.classをそのままではClass<FooListener<Bar>>にキャストできないため一旦Class<?>へキャストしています。 この二回のキャストで目的は達しているのですが、より良い方法はないものでしょうか?

    enhancement 
    opened by backpaper0 13
  • Needs default constructor to AbstractDao to use quarkus

    Needs default constructor to AbstractDao to use quarkus

    I'm working on quarkus framework using CDI and Doma2. CDI requires default constructor to use constructor injection. But AbstractDao and generated source code do not have default constructor.

    Details as follows https://quarkus.io/blog/quarkus-dependency-injection/

    enhancement 
    opened by jirokun 11
  • SQLファイルを使った@Updateメソッドの実行時、実行がスキップされることがある。

    SQLファイルを使った@Updateメソッドの実行時、実行がスキップされることがある。

    domaの1.26.0から2.19.1にアップデートする作業をしております。 バージョン2.19.1において、SQLファイルを実行する一部のUpdateメソッドを実行した際、以前は実行されたSQLの実行がスキップされるようになりました。

    事象

    SQLファイルを実行するUpdateメソッドを実行した結果、処理がスキップされてレコードが更新されなかった。1.26.0時点では、SQLを使った更新は、必ずSQLが実行される想定であった。

    確認事項

    ソースを確認すると、#75 でSqlFileUpdateQuery等に修正が入っており、更新対象のプロパティのみが更新された場合にUpdateを実行するように変更されているようにみえます。 ※/*%populate */は使わないケースでも事象が発生します。

    そのため、本来であればSQLが実行されることを期待するケースで実行されない事があると思われます。 ご確認の程、よろしくお願いいたします。

    問題が発生する可能性のあるケース

    • エンティティのプロパティは変更しないが、SQLファイル内で、例えばOracleのSYSDATE等を使ってレコードを更新したい場合
    • 同じエンティティで、SQLを使わないUPDATEと、使うUPDATEのDaoメソッドを混在させて、使い分けしたい場合

    コード抜粋

    ※一部マスキングしております

        @Update(sqlFile = true)
        int updateXXX(XXXBean arg);
    
    public class XXXBean extends AbstractEntity<XXXKey, XXX> implements XXX {
    
        /** OriginalStates */
        @SuppressWarnings("unused")
        @OriginalStates
        private XXXBean originalStates;
    ・・・
        /** 更新日時 */
        @Column(insertable = false, updatable = false)
        private YyyyMmDdHhMmSs updDatetime; // ★日時を変更してSQL実行
    ・・・
    
    UPDATE 
        XXXXXX xxxx
    SET
        xxxx.updUserInternalNo = /* arg.updUserInternalNo */'0000001'
        ,xxxx.updSysDatetime = /* arg.updSysDatetime */'200701010101002'
        ,xxxx.updBizDate = /* arg.updBizDate */'20070101'
    WHERE
        xxxx.tranDataInternalNo = /* arg.tranDataInternalNo */0
    
    opened by MakotoKinoshita 9
  • InsertしたレコードのEntityが欲しいです

    InsertしたレコードのEntityが欲しいです

    質問です。

    具体的に言うと、親子関係があるテーブルの親を先にINSERTしてそのIDを子のINSERTに使うので、INSERTしたレコードのEntityを戻り値として受け取りたいです。

    ドキュメントにあるorg.seasar.doma.Resultが今使っているバージョン(2.6.0)には含まれていないのですが、2.6.0だとどうすれば良いでしょうか?

    それと、戻り値のクラスはイミュータブルなエンティティである必要があるみたいですが、 エンティティクラスはDoma-Genで生成しています。出来れば戻り値にそのエンティティを使いたいです。 良い方法はないでしょうか?

    opened by matsumana 9
  • What should we using ResultSet directly?

    What should we using ResultSet directly?

    Doma2 で ResultSet を直接利用したい場合、 @SqlProcessor を使って次のように実装するのが正しいのでしょうか?

    Is the following implemenentation correct when using ResultSet directly?

    dao.select((config, preparedSql) -> {
        try (
            Connection con = config.getDataSource().getConnection();
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(preparedSql.getFormattedSql());
        ) {
            useResultSet(rs);
            return null;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    });
    

    テンプレート処理は Doma2 に任せたいと考えています。 この場合、 SQL は getFormattedSql() で取得したものを使うことで問題ないのかが気になっています(PreparedStatement のプレースホルダを使わないことによるセキュリティリスクがあったりするのか、など)。

    I care about whether using the SQL obtaining by getFormattedSql() has any problems.

    よろしくお願いします。

    opened by opengl-8080 7
  • [WIP] Doma 3

    [WIP] Doma 3

    All tests have been passed using OpenJDK version jdk-9+170.

    To build with Gradle, the following terminal command is required.

    export JDK_JAVA_OPTIONS='--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED'
    

    To build with Eclipse, see https://wiki.eclipse.org/Java9 .

    To run JUnit in Eclipse, set VM argument --add-modules java.se.ee as shown in the picture below.

    run_configurations_ _workspace-4_7_-_doma_src_main_java_org_seasar_doma_internal_apt_options_java_-_eclipse_sdk
    opened by nakamura-to 7
  • left joinについて

    left joinについて

    Description 下記の対応、ありがとうございました。 Support isNull and isNotNull predicates in ON clause of Criteria API よく考えると、ON clauseはwhere clauseとあまり変わらないではないかと思います。 inner joinはjoin対象テーブルの条件はONの代わりに、Whereに入れても大丈夫ですが、 left outer joinの場合、join対象テーブルの条件は必ずONに入れないといけないですよね。 例えば

    select
    a.*,
    b.*
    from
    a
    left join b on(
    b.id = a.id
    and b.col1 is null
    and b.col2 is not null
    and (
       b.col3 like '%aa%'
       or b.col4 not like '%bb%'
    )
    and b.col5 in (1,2,3,4)
    and b.col6 not in (1,2,3,4)
    and b.col7 between 1 and 10
    ...................
    )
    
    opened by gikeihi 6
  • Doma2のListをバインドできない?

    Doma2のListをバインドできない?

    Doma2を利用しての開発中に出ている意味不明なコンパイルエラーです。 コンパイルエラーメッセージを読んだのですが、なにかヒントがあれば教えてください。 パラメータはイテラブルまたは配列のさぶたいぷでなければならないが、java.util.Listです。 というように読み取ったのですが、読み取り方が間違っていますか? ‘‘‘ domaVersion = '2.29.0'

    エラー: [DOMA4161] Failed to verify the SQL template "META-INF/net/jagunma/chikusan/model/dao/bikou/BikouEntityDao/findOneBy.sql" on line 16 at column 113. The parameter type that corresponds to the expression "criteria.bikouIdCriteria.includes" must be a subtype of either java.lang.Iterable or an array type. But the actual type is "java.util.List". You may forget to access to its field or to invoke its method. SQL=[select * from dbo.Bikou where 1 = 1 /%if criteria.bikouIdCriteria.equalTo != null/AND BikouId = /criteria.bikouIdCriteria.equalTo/0/%end/ /%if criteria.bikouIdCriteria.notEqualTo != null/AND BikouId != /criteria.bikouIdCriteria.notEqualTo/0/%end/ /%if criteria.bikouIdCriteria.isNull != null/AND BikouId is null /%end/ /%if criteria.bikouIdCriteria.isNotNull != null/AND BikouId is not null/%end/ /%if criteria.bikouIdCriteria.moreThan != null/AND /criteria.bikouIdCriteria.moreThan/0 < BikouId/%end/ /%if criteria.bikouIdCriteria.moreOrEqual != null/AND /criteria.bikouIdCriteria.moreOrEqual/0 <= BikouId/%end/ /%if criteria.bikouIdCriteria.lessThan != null/AND BikouId < /criteria.bikouIdCriteria.lessThan/0/%end/ /%if criteria.bikouIdCriteria.lessOrEqual != null/AND BikouId <= /criteria.bikouIdCriteria.lessOrEqual/0/%end/ /%if criteria.bikouIdCriteria.from != null && criteria.bikouIdCriteria.to != null/AND BikouId between /criteria.bikouIdCriteria.from/0 and /criteria.bikouIdCriteria.to/1/%end/ /%if criteria.bikouIdCriteria.includes.isEmpty() != true/AND BikouId in /criteria.bikouIdCriteria.includes/(0)/%end/ /%if criteria.bikouIdCriteria.excludes.isEmpty() != true/AND BikouId not in /criteria.bikouIdCriteria.excludes/(0)/%end/

    ... /** The SQL statement is too long. The only first 5,000 character are displayed. */]

    ‘‘‘

    SQLが続くのでメッセージは短くしてます。

    opened by mizo432 6
  • Insert時にIDが挿入もしくは更新されない

    Insert時にIDが挿入もしくは更新されない

    いつもお世話になっております。 少々不可解な挙動があったので報告させていただきました。 DBにはPostgreSQLを利用しています。

    以下のようなエンティティとDaoを定義していたとします。

    @Entity
    public class Hoge {
      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      public Integer id;
    
      public String name;
    }
    
    @Dao
    public interface HogeDao {
      @Insert
      int insert(Hoge hoge);
    }
    

    このとき、Hoge.id に前もってシステム外で定義した値を入れた状態でHogeDao.insertに渡すと、 insert文にidが含まれず、エンティティにも新規生成されたIDがセットされないようです。

    期待される動作としては、

    1. idが指定されていた(nullでも0未満の値でもない)場合、insert文にidが含まれる
    2. 問答無用で新規作成されたIDがエンティティにセットされる

    のどちらかかなーという気がしますが、いかがでしょうか?

    ちなみに、@BatchInsertの場合は前者の挙動になるようです。

    opened by tasuku-s 6
  • トランザクション終了後、 Connection の autoCommit が常に true に設定される

    トランザクション終了後、 Connection の autoCommit が常に true に設定される

    Connection の autoCommit が LocalTransaction#beginInternal で false に、 LocalTransaction#release で true に設定されますが、後者は true 固定ではなく beginInternal 以前の元の値とすべきかと思いますが、いかがでしょうか。

    LocalTransactionConnection が preservedTransactionIsolation と同様に autoCommit 値を保持するようにするのが素直かなと思います。

    opened by scnmztn 6
  • [Security] Workflow gradle-wrapper-validation.yml is using vulnerable action gradle/wrapper-validation-action

    [Security] Workflow gradle-wrapper-validation.yml is using vulnerable action gradle/wrapper-validation-action

    The workflow gradle-wrapper-validation.yml is referencing action gradle/wrapper-validation-action using references v1. However this reference is missing the commit 89eda1fdc0167f59521d2bb10767f7169fb4d018 which may contain fix to the some vulnerability. The vulnerability fix that is missing by actions version could be related to: (1) CVE fix (2) upgrade of vulnerable dependency (3) fix to secret leak and others. Please consider to update the reference to the action.

    opened by igibek 0
  • Support java.time.Instant and java.util.UUID types

    Support java.time.Instant and java.util.UUID types

    Description

    While testing Doma (and using java.time.Instant and/or java.util.UUID types) I'm always getting error messages like:

    [DOMA4096] The class "java.util.UUID" is not supported as a persistent type. If you intend to map the class to the external domain class with @ExternalDomain, the configuration may be not enough. Check the class annotated with @DomainConverters and the annotation processing option "doma.domain.converters".
    [DOMA4096] The class "java.time.Instant" is not supported as a persistent type. If you intend to map the class to the external domain class with @ExternalDomain, the configuration may be not enough. Check the class annotated with @DomainConverters and the annotation processing option "doma.domain.converters".
    

    I think these two should be supported out-of-the-box by the framework since they are used widely for id and timestamp fields.

    The same goes with java.time.ZonedDateTime.

    Implementation Ideas

    N/A

    opened by x80486 1
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    github-actions
    .github/workflows/ci.yml
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/checkout v3
    • gradle/gradle-build-action v2
    • actions/upload-artifact v3
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/checkout v3
    • gradle/gradle-build-action v2
    • gradle/gradle-build-action v2
    • gradle/gradle-build-action v2
    • actions/upload-artifact v3
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/setup-java v3
    • actions/checkout v3
    • gradle/gradle-build-action v2
    • actions/upload-artifact v3
    .github/workflows/codeql-analysis.yml
    • actions/checkout v3
    • github/codeql-action v2
    • actions/setup-java v3
    • actions/setup-java v3
    • gradle/gradle-build-action v2
    • github/codeql-action v2
    .github/workflows/gradle-wrapper-validation.yml
    • actions/checkout v3
    • gradle/wrapper-validation-action v1
    .github/workflows/pr-labeler.yml
    • TimonVS/pr-labeler-action v4
    .github/workflows/release-draft.yml
    • release-drafter/release-drafter v5
    .github/workflows/release.yml
    • actions/github-script v6
    • actions/setup-java v3
    • actions/checkout v3
    • gradle/gradle-build-action v2
    • actions/upload-artifact v3
    gradle
    gradle.properties
    settings.gradle.kts
    • com.diffplug.eclipse.apt 3.40.0
    • com.diffplug.spotless 6.12.0
    • io.github.gradle-nexus.publish-plugin 1.1.0
    • net.researchgate.release 3.0.2
    • org.domaframework.doma.compile 2.0.0
    • org.jetbrains.kotlin.jvm 1.7.22
    • org.jetbrains.kotlin.kapt 1.7.22
    build.gradle.kts
    • org.junit.jupiter:junit-jupiter-api 5.9.1
    • org.junit.jupiter:junit-jupiter-engine 5.9.1
    • org.testcontainers:testcontainers-bom 1.17.6
    • com.h2database:h2 1.4.200
    • mysql:mysql-connector-java 8.0.31
    • com.oracle.database.jdbc:ojdbc8-production 18.15.0.0
    • org.postgresql:postgresql 42.5.1
    • com.microsoft.sqlserver:mssql-jdbc 8.4.1.jre8
    doma-core/build.gradle.kts
    doma-kotlin/build.gradle.kts
    doma-mock/build.gradle.kts
    doma-processor/build.gradle.kts
    doma-slf4j/build.gradle.kts
    • org.slf4j:slf4j-api 1.7.36
    • ch.qos.logback:logback-classic 1.2.11
    doma-template/build.gradle.kts
    integration-test-common/build.gradle.kts
    • ch.qos.logback:logback-classic 1.2.11
    • org.junit.jupiter:junit-jupiter-api 5.9.1
    integration-test-java/build.gradle.kts
    integration-test-java-additional/build.gradle.kts
    integration-test-kotlin/build.gradle.kts
    gradle-wrapper
    gradle/wrapper/gradle-wrapper.properties
    • gradle 7.6

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Feature Request: Add support for spatial data types

    Feature Request: Add support for spatial data types

    Feature Requests

    Please consider supporting database spatial data types (MySQL spatial or PostGIS).

    Example:

    @Getter
    @Setter
    @Entity(listener = SampleEntityListener.class)
    @Table(name = "SAMPLE")
    public class SampleEntity {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "ID")
        private Long id;
    
        @Column(name = "POLY")
        private org.locationtech.jts.geom.Polygon poly;
    }
    
    opened by dodangquan 1
  • Eclipse M2E APT processing error while trying to find SQL resources

    Eclipse M2E APT processing error while trying to find SQL resources

    For some reason the Eclipse compiler has issues with finding /META-INF sql files.

    The error:

    [DOMA4019] The file "META-INF/--/some.sql" is not found in the classpath. The absolute path is "--/target/classes/META-INF/--/some.sql".
    

    (I redacted the real path with --).

    It reports an IDE error (red X) on DAO methods that it can't find the SQL files even though when a regular compile is done with Maven it finds the sources just fine (ie mvn package). And yes the annotation processing does run during a regular maven build.

    The file does exist on the absolute path (ie target/classes directory) but Eclipses FileObject implementation seems to disagree which I assume is different than the normal javac one.

    Thus I experimented by temporarily putting the SQL resources in Maven APT generated target/generated-sources/annotations folder as it has a special attribute of m2e-apt marked in Eclipses' .classpath

            <classpathentry kind="src" path="target/generated-sources/annotations">
                    <attributes>
                            <attribute name="ignore_optional_problems" value="true"/>
                            <attribute name="optional" value="true"/>
                            <attribute name="maven.pomderived" value="true"/>
                            <attribute name="m2e-apt" value="true"/>
                    </attributes>
            </classpathentry>
    

    I think or believe the m2e apt plugin/bridge needs resources in those directories if they are going to be used by APT tooling (ie hints or warnings in the IDE).

    However after I put the resources in those directories I now get this exception which I believe is a bug regardless:

    [DOMA4016] An unexpected error has occurred. It may be a bug in the Doma framework. Report the following stacktrace: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.apt.model.NoTypeImpl cannot be cast to org.eclipse.jdt.internal.compiler.apt.model.TypeMirrorImpl
    	at org.eclipse.jdt.internal.compiler.apt.model.TypesImpl.directSupertypes(TypesImpl.java:175)
    	at org.seasar.doma.internal.apt.MoreTypes.directSupertypes(MoreTypes.java:69)
    	at org.seasar.doma.internal.apt.cttype.CtTypes.getSuperDeclaredType(CtTypes.java:533)
    	at org.seasar.doma.internal.apt.cttype.CtTypes.newIterableCtType(CtTypes.java:345)
    	at org.seasar.doma.internal.apt.cttype.CtTypes.lambda$newCtTypeInternal$1(CtTypes.java:521)
    	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    	at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
    
    opened by agentgt 11
Releases(2.53.1)
  • 2.53.1(Oct 8, 2022)

    Bug Fixes

    • Associate entities only once per unique combination (#891)

    Maintenance

    • Support for Java 19 (#887)

    Dependency Upgrades

    • Update dependency org.testcontainers:testcontainers-bom to v1.17.5 (#889)
    • Update plugin com.diffplug.eclipse.apt to v3.39.0 (#886)
    • Update dependency org.testcontainers:testcontainers-bom to v1.17.4 (#885)
    • Update org.jetbrains.kotlin to v1.7.20 (#884)
    • Update org.junit.jupiter to v5.9.1 (#883)
    • Update plugin com.diffplug.eclipse.apt to v3.38.0 (#872)
    • Update plugin com.diffplug.spotless to v6.11.0 (#856)
    • Update plugin net.researchgate.release to v3.0.2 (#881)
    Source code(tar.gz)
    Source code(zip)
  • 2.53.0(Sep 9, 2022)

    New Features

    • Add the doma-template module (#879)
      • See https://doma.readthedocs.io/en/2.53.0/sql/#doma-template-module

    Maintenance

    • Run integration tests on Oracle database (#862)

    Documentation

    • Change the link to Doma Tools (#874)

    Dependency Upgrades

    • Update plugin net.researchgate.release to v3.0.1 (#877)
    • Update dependency org.postgresql:postgresql to v42.5.0 (#876)
    • Update dependency org.postgresql:postgresql to v42.4.2 (#873)
    • Update dependency gradle to v7.5.1 (#868)
    • Update dependency org.postgresql:postgresql to v42.4.1 (#867)
    • Update org.junit.jupiter to v5.9.0 (#865)
    • Update dependency mysql:mysql-connector-java to v8.0.30 (#864)
    • Update org.jetbrains.kotlin to v1.7.10 (#846)
    • Replace "org.seasar.doma.compile" with "org.domaframework.doma.compile" (#863)
    Source code(tar.gz)
    Source code(zip)
  • 2.52.0(Jul 17, 2022)

    New Features

    • Add the ignoreGeneratedKeys option to improve performance (#861)
    • Support for Condition and Loop directives on the top level in SQL transformation (#840)

    Maintenance

    • Remove unnecessary Gradle properties (#849)

    Dependency Upgrades

    • Update plugin net.researchgate.release to v3 (#853)
    • Update dependency gradle to v7.5 (#858)
    • Update dependency org.testcontainers:testcontainers-bom to v1.17.3 (#855)
    • Update plugin com.diffplug.eclipse.apt to v3.37.1 (#854)
    • Update plugin com.diffplug.eclipse.apt to v3.37.0 (#851)
    • Update plugin com.diffplug.spotless to v6.7.2 (#850)
    • Update plugin com.diffplug.spotless to v6.7.1 (#848)
    • Update plugin com.diffplug.spotless to v6.7.0 (#844)
    • Update dependency org.postgresql:postgresql to v42.4.0 (#847)
    • Update dependency org.postgresql:postgresql to v42.3.6 (#843)
    • Update dependency org.testcontainers:testcontainers-bom to v1.17.2 (#842)
    • Update plugin com.diffplug.spotless to v6.6.1 (#839)
    • Update plugin com.diffplug.spotless to v6.6.0 (#837)
    Source code(tar.gz)
    Source code(zip)
  • 2.51.1(May 4, 2022)

    Maintenance

    • Support for Java 18 (#836)

    Documentation

    • Remove CHANGELOG.md. (#817)

    Dependency Upgrades

    • Update dependency org.postgresql:postgresql to v42.3.5 (#835)
    • Update github/codeql-action action to v2 (#832)
    • Update plugin com.diffplug.spotless to v6.5.2 (#834)
    • Update plugin com.diffplug.spotless to v6.5.1 (#833)
    • Update dependency mysql:mysql-connector-java to v8.0.29 (#831)
    • Update plugin com.diffplug.spotless to v6.5.0 (#830)
    • Update plugin com.diffplug.eclipse.apt to v3.36.2 (#829)
    • Update plugin com.diffplug.eclipse.apt to v3.36.1 (#828)
    • Update org.jetbrains.kotlin to v1.6.21 (#827)
    • Update dependency org.postgresql:postgresql to v42.3.4 (#826)
    • Update dependency org.testcontainers:testcontainers-bom to v1.17.1 (#825)
    • Update dependency org.testcontainers:testcontainers-bom to v1.17.0 (#824)
    • Update plugin com.diffplug.spotless to v6.4.2 (#823)
    • Update org.jetbrains.kotlin to v1.6.20 (#822)
    • Update dependency gradle to v7.4.2 (#821)
    • Update plugin com.diffplug.spotless to v6.4.1 (#820)
    • Update plugin com.diffplug.spotless to v6.4.0 (#819)
    • Update plugin com.diffplug.eclipse.apt to v3.36.0 (#818)
    • Update actions/upload-artifact action to v3 (#813)
    • Update actions/checkout action to v3 (#812)
    • Update actions/github-script action to v6 (#808)
    • Update actions/setup-java action to v3 (#811)
    • Update dependency gradle to v7.4.1 (#815)
    • Update dependency ch.qos.logback:logback-classic to v1.2.11 (#814)
    • Update plugin com.diffplug.spotless to v6.3.0 (#810)
    • Update dependency org.postgresql:postgresql to v42.3.3 (#809)
    • Update plugin com.diffplug.spotless to v6.2.2 (#807)
    • Update dependency org.slf4j:slf4j-api to v1.7.36 (#806)
    • Update dependency gradle to v7.4 (#805)
    • Update plugin com.diffplug.spotless to v6.2.1 (#804)
    • Update dependency org.postgresql:postgresql to v42.3.2 (#802)
    • Update plugin com.diffplug.eclipse.apt to v3.35.0 (#801)
    • Update dependency org.slf4j:slf4j-api to v1.7.35 (#800)
    • Update dependency org.slf4j:slf4j-api to v1.7.34 (#799)
    • Update dependency org.testcontainers:testcontainers-bom to v1.16.3 (#797)
    • Update dependency mysql:mysql-connector-java to v8.0.28 (#796)
    • Update dependency org.slf4j:slf4j-api to v1.7.33 (#793)
    • Update plugin com.diffplug.spotless to v6.2.0 (#792)
    • Update plugin com.diffplug.spotless to v6.1.2 (#791)
    • Update plugin com.diffplug.eclipse.apt to v3.34.1 (#790)
    Source code(tar.gz)
    Source code(zip)
  • 2.51.0(Dec 29, 2021)

    New Features

    • Support to include/exclude properties in the Criteria INSERT/UPDATE statements (#789)

    Maintenance

    • Add a test for the PostgreSQL UUID type (#778)
    • Polish Gradle build scripts (#764)
    • Fix build steps for CodeQL (#763)
    • Add a .sdkmanrc for ease of development (#761)
    • Fix the changelog workflow (#759)

    Dependency Upgrades

    • Update plugin com.diffplug.spotless to v6.1.0 (#788)
    • Update dependency ch.qos.logback:logback-classic to v1.2.10 (#787)
    • Update dependency gradle to v7.3.3 (#786)
    • Update dependency ch.qos.logback:logback-classic to v1.2.9 (#784)
    • Update plugin com.diffplug.spotless to v6.0.5 (#783)
    • Update plugin com.diffplug.eclipse.apt to v3.34.0 (#782)
    • Update dependency gradle to v7.3.2 (#781)
    • Update dependency ch.qos.logback:logback-classic to v1.2.8 (#780)
    • Update org.jetbrains.kotlin to v1.6.10 (#779)
    • Update plugin com.diffplug.spotless to v6.0.4 (#777)
    • Update plugin com.diffplug.spotless to v6.0.2 (#776)
    • Update plugin com.diffplug.spotless to v6.0.1 (#775)
    • Update dependency gradle to v7.3.1 (#774)
    • Update plugin com.diffplug.eclipse.apt to v3.33.3 (#773)
    • Update org.junit.jupiter to v5.8.2 (#771)
    • Update org.jetbrains.kotlin to v1.6.0 (#770)
    • Update dependency ch.qos.logback:logback-classic to v1.2.7 (#769)
    • Update plugin com.diffplug.spotless to v6 (#767)
    • Update dependency gradle to v7.3 (#768)
    • Update plugin com.diffplug.eclipse.apt to v3.33.2 (#766)
    • Update plugin org.jetbrains.kotlin.kapt to v1.6.0-RC2 (#765)
    • Use google-java-format 1.12.0 (#762)
    • Update dependency org.postgresql:postgresql to v42.3.1 (#760)
    Source code(tar.gz)
    Source code(zip)
  • 2.50.0(Oct 29, 2021)

    Breaking Changes

    • The package name included in the jar file of doma-kotlin has been changed from org.seasar.doma.jdbc.criteria to org.seasar.doma.kotlin.jdbc.criteria.
    • The package name included in the jar file of doma-slf4j has been changed from org.seasar.doma.jdbc to org.seasar.doma.slf4j.

    These changes are necessary to support the Java Platform Module System.

    New Features

    • Support Java Platform Module System (#749)
    • Make complex conditions available in ON and HAVING clauses (#739)

    Maintenance

    • Polish GitHub Actions workflows (#757)
    • Polish Gradle build scripts (#756)
    • Include integration-test projects (aka. domaframework/doma-it) into this repository (#750)

    Documentation

    • Add documentation about JPMS (#758)
    • Update Expression Language Document (#746)

    Dependency Upgrades

    • Update dependency org.testcontainers:testcontainers-bom to v1.16.2 (#753)
    • Bump babel from 2.6.0 to 2.9.1 in /docs (#747)
    • Update plugin com.diffplug.spotless to v5.17.1 (#751)
    • Update actions/github-script action to v5 (#740)
    • Update plugin com.diffplug.spotless to v5.17.0 (#745)
    • Update plugin com.diffplug.spotless to v5.16.0 (#743)
    • Update plugin com.diffplug.eclipse.apt to v3.33.1 (#742)
    • Update plugin com.diffplug.spotless to v5.15.2 (#741)
    • Update org.junit.jupiter to v5.8.1 (#738)
    • Update plugin com.diffplug.spotless to v5.15.1 (#737)
    Source code(tar.gz)
    Source code(zip)
  • 2.49.0(Sep 20, 2021)

    New Features

    • Support isNull and isNotNull predicates in ON clause of Criteria API (#729)

    Bug Fixes

    • If the dialect does not support the mod operator, use the mod function in the Criteria API (#733)

    Maintenance

    • Simplify integration test (#732)
    • Support Java 17 (#730)

    Dependency Upgrades

    • Update plugin org.jetbrains.kotlin.jvm to v1.5.31 (#734)
    • Update plugin com.diffplug.eclipse.apt to v3.33.0 (#731)
    • Update plugin com.diffplug.eclipse.apt to v3.32.2 (#727)
    • Update org.junit.jupiter to v5.8.0 (#726)
    Source code(tar.gz)
    Source code(zip)
  • 2.48.0(Sep 11, 2021)

    New Features

    • Add the selectAsRow method to NativeSql DSL (#723)

    Bug Fixes

    • Allow overloading for methods annotated with org.seasar.doma.Sql (#724)
    • Do not remove "(" when generating insert sql into auto_increment column only table (#722)
    • Fix a problem where the queryTimeout value was incorrectly used as the fetchSize value (#721)

    Documentation

    • Remove the forum link (#725)

    Dependency Upgrades

    • Update plugin com.diffplug.eclipse.apt to v3.32.1 (#719)
    • Update dependency ch.qos.logback:logback-classic to v1.2.6 (#718)
    • Update plugin com.diffplug.spotless to v5.15.0 (#716)
    • Update plugin com.diffplug.eclipse.apt to v3.32.0 (#715)
    • Update org.jetbrains.kotlin to v1.5.30 (#714)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.3 (#713)
    • Update dependency gradle to v7.2 (#712)
    • Update dependency ch.qos.logback:logback-classic to v1.2.5 (#711)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.31.0 (#710)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.2 (#709)
    • Update dependency ch.qos.logback:logback-classic to v1.2.4 (#707)
    • Update dependency org.slf4j:slf4j-api to v1.7.32 (#708)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.30.2 (#706)
    Source code(tar.gz)
    Source code(zip)
  • 2.47.1(Jul 10, 2021)

    Bug Fixes

    • Allow the domain class to implement the Iterable interface (#705)

    Dependency Upgrades

    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.1 (#704)
    • Update dependency gradle to v7.1.1 (#703)
    • Update dependency org.slf4j:slf4j-api to v1.7.31 (#702)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.0 (#701)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.30.0 (#700)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.13.0 (#698)
    • Update dependency gradle to v7.1 (#699)
    Source code(tar.gz)
    Source code(zip)
  • 2.47.0(Jun 6, 2021)

  • 2.46.2(May 26, 2021)

    Bug Fixes

    • Don't use Stream.findFirst() to avoid NullPointerException (#695)

    Dependency Upgrades

    • Update dependency gradle to v7.0.2 (#691)
    • Update org.junit.jupiter to v5.7.2 (#692)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.5 (#690)
    • Update dependency gradle to v7.0.1 (#689)
    Source code(tar.gz)
    Source code(zip)
  • 2.46.1(Apr 25, 2021)

    Maintenance

    • Add params and literals methods to InsertBuilder, UpdateBuilder and DeleteBuilder (#683)
    • Remove "skip ci" check (#673)
    • Pass parameters using environment variables (#672)

    Documentation

    • Fix typo "IEDA" -> "IDEA" (#684)

    Dependency Upgrades

    • Update actions/github-script action to v4 (#688)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.4 (#687)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.3 (#686)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.1 (#685)
    • Update dependency gradle to v7 (#681)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.0 (#682)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.29.1 (#680)
    • Update actions/setup-java action to v2 (#678)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.11.1 (#676)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.29.0 (#674)
    Source code(tar.gz)
    Source code(zip)
  • 2.46.0(Mar 21, 2021)

    New Features

    • Support the DataType annotation officially (#670)

    Maintenance

    • Fix error "No code found during the build" (#669)
    • Change build steps for CodeQL analysis (#668)
    • Fix warning "git checkout HEAD^2 is no longer necessary" (#666)

    Documentation

    • Support Java 16 (#671)

    Dependency Upgrades

    • Bump jinja2 from 2.10 to 2.11.3 in /docs (#667)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.11.0 (#665)
    • Update postgres Docker tag to v10.16 (#664)
    Source code(tar.gz)
    Source code(zip)
  • 2.45.0(Feb 27, 2021)

    New Features

    • Support mixin for Scope features (#648)
    • Add Scope features (#643)

    Maintenance

    • Refactor Scope features (#660)

    Documentation

    • Add documentation about Scope features (#663)
    • Change the name of quarkus extension and its link (#647)

    Dependency Upgrades

    • Update dependency io.codearte.nexus-staging:io.codearte.nexus-staging.gradle.plugin to v0.30.0 (#662)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.28.2 (#661)
    • Update dependency gradle to v6.8.3 (#659)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.28.1 (#658)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.10.2 (#656)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.28.0 (#655)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.10.1 (#654)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.27.0 (#653)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.26.1 (#652)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.10.0 (#651)
    • Update dependency gradle to v6.8.2 (#650)
    • Update org.junit.jupiter to v5.7.1 (#649)
    • Update dependency gradle to v6.8.1 (#646)
    • Update EndBug/add-and-commit action to v7 (#644)
    • Update dependency gradle to v6.8 (#642)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.9.0 (#640)
    • Update EndBug/add-and-commit action to v6 (#638)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.26.0 (#639)
    • Update dependency gradle to v6.7.1 (#636)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.8.2 (#635)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.8.1 (#634)
    Source code(tar.gz)
    Source code(zip)
  • 2.44.3(Nov 9, 2020)

    Bug Fixes

    • Consider the trailing semi-colon in SQL transformation (#631)

    Maintenance

    • Specify timeout-minutes for GitHub Actions jobs (#630)
    • Remove automerge-action (#629)

    Documentation

    • Fix markdown syntax (#633)
    • Update README.md (#632)
    Source code(tar.gz)
    Source code(zip)
  • 2.44.2(Nov 4, 2020)

    Bug Fixes

    • Fix returning wrong type for Optional properties on selecting (#628)

    Maintenance

    • Adjust merge retry settings (#626)
    • Add a new personal access token (#625)
    • Add pascalgn/automerge-action (#624)
    • Run the Gradle release task in the GitHub Actions workflow (#623)
    Source code(tar.gz)
    Source code(zip)
  • 2.44.1(Oct 29, 2020)

    Bug Fixes

    • Retain first semi-colon instead of removing it in SQL template (#621)
    • Prohibit multiple 1-arg constructors in DataType annotated record (#614)

    Maintenance

    • Switch from Gitter to Zulip (#619)
    • Deprecate LENIENT_SNAKE_LOWER_CASE and LENIENT_SNAKE_UPPER_CASE (#613)

    Documentation

    • Replace doma-quarkus with quarkiverse-doma (#622)
    • Fix version property name (#615)

    Dependency Upgrades

    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.7.0 (#618)
    • Update EndBug/add-and-commit action to v5 (#616)
    • Update actions/download-artifact action to v2 (#617)
    Source code(tar.gz)
    Source code(zip)
  • 2.44.0(Oct 17, 2020)

    New Features

    • Add the "avgAsDouble" aggregate function (#605)

    Maintenance

    • Make LocalTransactionManager more useful (#609)
    • Move the LogKind enum from doma-slf4j to doma-core (#607)
    • Suppress deprecation warning messages (#604)
    • Deprecate the config element of the Dao annotation (#603)
    • Use candidate version instead of explicitly specifying (#601)

    Documentation

    • Add a description of Maven (#612)
    • Rename AppConfig to DbConfig (#611)
    • Add a link to the doma-slf4j repository (#610)
    • Fix typo (#608)
    • Get releaseVersion by GitHub CLI (#602)
    • Use "runtimeOnly" dependency for logback (#600)

    Dependency Upgrades

    • Update dependency gradle to v6.7 (#606)
    Source code(tar.gz)
    Source code(zip)
  • 2.43.0(Sep 25, 2020)

    New Features

    • Add the doma-slf4j module (#594)

    Bug Fixes

    • Fix changelog.yml (#597)
    • Fix typo in keywords used in Oracle11Dialect (#584)
    • Fix typo in method name (#583)
    • Fix a broken error message (#579)

    Maintenance

    • Add CHANGELOG.md (#596)
    • Split a CI job (#587)
    • Add 'throws' declarations for compatibility (#586)
    • Cleanup Code for the doma-mock module (#585)
    • Cleanup Code for the doma-processor module (#582)
    • Remove duplicate code (#581)
    • Cleanup Code for the doma-kotlin module (#580)
    • Cleanup Code for the doma-core module (#578)
    • Specify the version explicitly on CI (#576)
    • Test on JDK 15 (#572)
    • Replace versions in documentation automatically (#567)

    Documentation

    • Fix warning messages (#599)
    • Add documentation for SLF4J support (#598)
    • Clean getting-started document (#591)
    • Clean README.md (#590)
    • Rewrite getting-started document (#589)
    • Clean RELEASE_OPERATIONS.md (#575)
    • Support Java 15 (#573)
    • Format example code in README.md (#571)
    • Add a description for Kotlin projects (#569)
    • Fix a broken link (#568)

    Dependency Upgrades

    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.6.1 (#593)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.6.0 (#592)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.5.2 (#577)
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.25.0 (#574)
    • Update org.junit.jupiter to v5.7.0 (#570)
    Source code(tar.gz)
    Source code(zip)
  • 2.42.0(Sep 13, 2020)

    New Features

    • Improve the Kotlin Criteria API (#562)
    • Add the Criteria API for Kotlin (#558)

    Bug Fixes

    • Fix peek methods in the Kotlin Criteira API (#561)
    • Fix invalid UPDATE statements for SQL Server (#557)

    Maintenance

    • Run CodeQL code scanning once a day (#564)
    • Test Kotlin Criteria API on CI (#563)
    • Run code scanning on GitHub Action (#483)
    • Skip the spotlessCheck task in the integration testing (#555)
    • Skip the closeAndReleaseRepository task for the SNAPSHOT versions (#553)
    • Publish artifacts to the Maven Central automatically (#552)
    • Update issue templates (#551)
    • Skip signing for the publishToMavenLocal task (#549)
    • Use https protocol for external links (#548)
    • Use Renovate GitHub-hosted Presets (#546)
    • Remove an AUTHOR variable from change-template (#545)
    • Refactor build.gradle.kts (#541)

    Documentation

    • Clean README.md (#566)
    • Support Kotlin 1.4.0 or later (#565)
    • Fix a broken link (#544)
    • Simplify RELEASE_OPERATIONS.md (#543)

    Dependency Upgrades

    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.5.1 (#560)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.5.0 (#559)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.4.0 (#554)
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.3.0 (#542)
    Source code(tar.gz)
    Source code(zip)
  • 2.41.0(Aug 26, 2020)

    New Features

    • Exclude an identity column and value from an INSERT statement for H… (#506) @nakamura-to

    Bug Fixes

    • Fix invalid DELETE statement (#539) @nakamura-to
    • Fix invalid UPDATE statement. (#538) @nakamura-to

    Maintenance

    • Remove the test-criteria project. (#540) @nakamura-to
    • Add javadoc comments for the Criteria API. (#507) @nakamura-to
    • Update issue templates (#504) @nakamura-to
    • Introduce gradle/wrapper-validation-action (#502) @nakamura-to
    • Configure Renovate (#497) @renovate
    • Enable the Gradle build cache to improve build performance (#496) @nakamura-to
    • Make release drafter runnable manually (#495) @nakamura-to
    • Improve CI performance (#494) @nakamura-to
    • Add null checks in build.gradle.kts (#493) @nakamura-to
    • Use the maven repository as an artifact (#492) @nakamura-to
    • Format code automatically with the Gradle build task (#484) @nakamura-to
    • Simplify the release operation (#482) @nakamura-to

    Documentation

    • Polish documentation (#505) @nakamura-to
    • Create CODE_OF_CONDUCT.md (#503) @nakamura-to
    • Improve release operations (#489) @nakamura-to
    • Use HTTPS to link to Apache License (#488) @nakamura-to
    • Create SECURITY.md (#487) @nakamura-to
    • Add a Contributing guide (#486) @nakamura-to
    • Clarify release operations. (#485) @nakamura-to

    Dependency Upgrades

    • Update dependency gradle to v6.6.1 (#536) @renovate
    • Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.2.0 (#535) @renovate
    • Update dependency com.diffplug.eclipse.apt:com.diffplug.eclipse.apt.gradle.plugin to v3.24.0 (#498) @renovate
    Source code(tar.gz)
    Source code(zip)
  • 2.40.0(Aug 8, 2020)

    New Features

    • Log a release of a savepoint with a proper message (#458) @nakamura-to

    Bug Fixes

    • Fix the message for unique constraint violation (#461) @nakamura-to
    • Define a default implementation for the logTransactionSavepointReleas… (#459) @nakamura-to

    Maintenance

    • Run the integration test in this repository (#477) @nakamura-to
    • Dispatch integration test only when the event is push (#476) @nakamura-to
    • Add exclude-labels (#474) @nakamura-to
    • Add version-resolver (#473) @nakamura-to
    • Create release notes automatically (#472) @nakamura-to
    • Avoid unexpected token errors. (#471) @nakamura-to
    • Use the first commit message as argument (#470) @nakamura-to
    • Polish workflow (#469) @nakamura-to
    • Run integration test (#468) @nakamura-to
    • Cache Gradle packages (#467) @nakamura-to
    • Upload libs and reports (#466) @nakamura-to
    • Use GitHub Actions instead of Travis CI (#465) @nakamura-to
    • Deprecate the getTableName and the getQualifiedTableName methods (#460) @nakamura-to

    Documentation

    • Move release notes. (#475) @nakamura-to

    Dependency Upgrades

    • Use Spotless 5.1.0 (#463) @nakamura-to
    • Use Gradle 6.5.1 (#462) @nakamura-to
    Source code(tar.gz)
    Source code(zip)
  • 2.38.0(Aug 8, 2020)

  • 2.37.0(Aug 8, 2020)

    #449 Update a document about the Criteria API #448 Support Quarkus #447 Support the excludeNull setting for the INSERT and the UPDATE queries in the Criteria API #444 Support to associate immutable entities in the Criteria API

    Source code(tar.gz)
    Source code(zip)
  • 2.36.0(Aug 8, 2020)

    #440 Update the Criteria API document #439 Remove lambda expressions from generated code to reduce compilation time #438 Support the select expression #437 Support the literal expression for the following data types #436 Support the case expression #435 Make a select method call optional in a sub-select #432 Add the select and the selectTo methods to the Entityql and NativeSql DSLs #431 Add some string expressions #430 Polish

    Source code(tar.gz)
    Source code(zip)
  • 2.35.0(Aug 8, 2020)

    #426 Improve the Criteria API documents #425 Enhance the Criteria API #424 Generate Metamodel classes effectively #423 Reload a typeElement with its canonical name to avoid the eclipse bug #422 Optimize generation code

    Source code(tar.gz)
    Source code(zip)
  • 2.34.0(Aug 8, 2020)

  • 2.33.0(Aug 8, 2020)

  • 2.32.0(Aug 8, 2020)

  • 2.31.0(Aug 8, 2020)

    #388 Enhance the CommentContext class to accept a message #387 Support the Sql annotation officially #386 Add the "getQuery" method to the "Command" interface #384 Resolve type parameters with actual type arguments for generic types #382 Add the Criteria API #381 Replace version before build #380 Allow uncommitted files before release #379 Don't replace the version with the snapshot version in documents #378 Allow no-args default method in Kotlin

    Source code(tar.gz)
    Source code(zip)
Owner
domaframework
Database mapping framework and related projects for Java
domaframework
Hibernate's core Object/Relational Mapping functionality

Hibernate ORM is a library providing Object/Relational Mapping (ORM) support to applications, libraries, and frameworks. It also provides an implement

Hibernate 5.2k Jan 9, 2023
MyBatis SQL mapper framework for Java

MyBatis SQL Mapper Framework for Java The MyBatis SQL mapper framework makes it easier to use a relational database with object-oriented applications.

MyBatis 18k Jan 2, 2023
ObjectiveSQL is an ORM framework in Java based on ActiveRecord pattern

ObjectiveSQL is an ORM framework in Java based on ActiveRecord pattern, which encourages rapid development and clean, codes with the least, and convention over configuration.

Braisdom 1.2k Dec 28, 2022
Language-Natural Persistence Layer for Java

Permazen is a better persistence layer for Java Persistence is central to most applications. But there are many challenges involved in persistence pro

Permazen 322 Dec 12, 2022
Storm - a fast, easy to use, no-bullshit opinionated Java ORM inspired by Doctrine

A stupidly simple Java/MySQL ORM with native Hikaricp and Redis cache support supporting MariaDB and Sqlite

Mats 18 Dec 1, 2022
ORM16 is a library exploring code generation-based approach to ORM for Java 17 and focusing on records as persistent data model

About ORM16 ORM16 is a library exploring code generation-based approach to ORM for Java 17 and focusing on records as persistent data model. Example I

Ivan Gammel 1 Mar 30, 2022
dOOv (Domain Object Oriented Validation) a fluent API for type-safe bean validation and mapping

dOOv (Domain Object Oriented Validation) dOOv is a fluent API for typesafe domain model validation and mapping. It uses annotations, code generation a

dOOv 77 Nov 20, 2022
dOOv (Domain Object Oriented Validation) a fluent API for type-safe bean validation and mapping

dOOv (Domain Object Oriented Validation) dOOv is a fluent API for typesafe domain model validation and mapping. It uses annotations, code generation a

dOOv 77 Nov 20, 2022
Fast and Easy mapping from database and csv to POJO. A java micro ORM, lightweight alternative to iBatis and Hibernate. Fast Csv Parser and Csv Mapper

Simple Flat Mapper Release Notes Getting Started Docs Building it The build is using Maven. git clone https://github.com/arnaudroger/SimpleFlatMapper.

Arnaud Roger 418 Dec 17, 2022
HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL

HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL, stored procedures, more dialect 20+, nested transactions, multiple data sources, conditional constructors, INSERT strategies, multiple statements/multiple results. And compatible with Spring and MyBatis usage.

赵永春 17 Oct 27, 2022
Simpler, better and faster Java bean mapping framework

Orika ! NEW We are pleased to announce the release of Orika 1.5.4 ! This version is available on Maven central repository What? Orika is a Java Bean m

null 1.2k Jan 6, 2023
Reladomo is an enterprise grade object-relational mapping framework for Java.

Reladomo What is it? Reladomo is an object-relational mapping (ORM) framework for Java with the following enterprise features: Strongly typed compile-

Goldman Sachs 360 Nov 2, 2022
Mars - Object Relational Mapping Framework for MongoDB (MongoDB ORM)

Mars Object Relational Mapping Framework for MongoDB 致自己 造自己的轮子,让别人去说 ; What is Mars Mars is a unified driver platform product developed by Shanghai J

null 35 Nov 17, 2022
True Object-Oriented Java Web Framework

Project architect: @paulodamaso Takes is a true object-oriented and immutable Java8 web development framework. Its key benefits, comparing to all othe

Yegor Bugayenko 748 Dec 23, 2022
A programmer-oriented testing framework for Java.

JUnit 4 JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks. For more infor

JUnit 8.4k Jan 4, 2023
A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas.

FileManager A GUI-based file manager based on a Java file management and I/O framework using object-oriented programming ideas. Enables folder creatio

Zongyu Wu 4 Feb 7, 2022
A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular.

GeekStore A developer oriented, headless ecommerce framework based on Spring + GraphQL + Angular. Headless means GeekStore only focus on the backend,

波波微课 13 Jul 27, 2022
Relational database project, PC Builder, for the Database Systems Design course.

README: Starting the Progam: This program was built and ran on the Eclipse IDE. To run, first create the database, "ty_daniel_db", using the ty_dani

Daniel Ty 1 Jan 6, 2022
Selma Java bean mapping that compiles

Selma Java bean mapping at compile time ! What is Selma ? S3lm4 say Selma, stands for Stupid Simple Statically Linked Mapper. In fact it is on one sid

Publicis Sapient Engineering 210 Nov 2, 2022
Generates a Proguard mapping file for use in obfuscating your Java projects.

Reaper Generates a Proguard mapping file for use in obfuscating your Java projects. Features Automatically checks for duplicate names. Interactive, in

Nox 12 Dec 29, 2022