Doma 2 alternatives and similar libraries
Based on the "ORM" category.
Alternatively, view Doma 2 alternatives based on common mentions on social networks and blogs.
-
APIJSON
🏆 实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构 🏆 Real-Time coding-free, powerful and secure ORM 🚀 providing APIs and Docs without coding by Backend, and the returned JSON of API can be customized by Frontend(Client) users -
Afinal
Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。 -
Morphia
MongoDB object-document mapper in Java based on https://github.com/mongodb/mongo-java-driver -
Bean Searcher
🔥🔥🔥 A read-only ORM focusing on advanced query, naturally supports joined tables, and avoids DTO/VO conversion, making it possible to realize complex query in one line of code ! -
SQL-Toy
Java真正智慧的ORM框架,融合JPA功能和最佳的sql编写及查询模式、独创的缓存翻译、最优化的分页、并提供无限层级分组汇总、同比环比、行列转换、树形排序汇总、sql自适配不同数据库、分库分表、多租户、数据加解密、脱敏以及面向复杂业务和大规模数据分析等痛点、难点问题项目实践经验分享的一站式解决方案! -
MyBatis-Plus-Join
支持连表查询的mybatis-plus,mybatis-plus风格的连表操作提供wrapper.leftJoin(),wrapper.rightJoin()等操作 -
Bee
Bee is an AI, easy and high efficiency ORM framework,support JDBC,Cassandra,Mongodb,Sharding,Android,HarmonyOS. -
Easy-Query
java/kotlin high performance lightweight solution for jdbc query,support oltp and olap query,一款java下面支持强类型、轻量级、高性能的ORM,致力于解决jdbc查询,拥有对象模型筛选、隐式子查询、隐式join -
Eclipse JNoSQL
Eclipse JNoSQL is a framework which has the goal to help Java developers to create Jakarta EE applications with NoSQL. -
Eclipse Store
High-Performance Java-Native-Persistence. Store and load any Java Object Graph or Subgraphs partially, Relieved of Heavy-weight JPA. Microsecond Response Time. Ultra-High Throughput. Minimum of Latencies. Create Ultra-Fast In-Memory Database Applications & Microservices.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Doma 2 or a related project?
Popular Comparisons
README
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.
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 or above:
@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.53.1")
annotationProcessor("org.seasar.doma:doma-processor:2.53.1")
}
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.53.1")
kapt("org.seasar.doma:doma-processor:2.53.1")
}
Maven
We recommend using Gradle, but if you want to use Maven, see below.
For Java projects:
...
<properties>
<doma.version>2.53.1</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
Chatroom
https://domaframework.zulipchat.com
Related projects
- quarkus-doma - Supports integration with Quarkus
- doma-spring-boot - Supports integration with Spring Boot
- doma-compile-plugin - Makes compilation easy
- doma-codegen-plugin - Generates Java and SQL files
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 | |
Java 16 | v | |
Java 17 | v | |
Java 18 | v | |
Java 19 | v |