Just Another Object-Relational Mapping
JAORM is a lightweight modular compile-time based Java ORM.
JAORM use Java Annotation Processor JSR 269 for Entity Mapping Generation instead of Runtime Reflection API-based mappers which have high performance cost.
JAORM is divided in modules that are used from main module using Java SPI
- Core (Entity Mapper and Query)
- Cache
- DSL (Domain-Specific Language)
- Transaction
- Lombok Support
- SQL Specifics
- Oracle
- MySql
- MS SQL Server
- PostgreSQL
- Validation
- Extensions
- ANSI SQL Build Extensions
- Dependency Injection Extensions
- Micronaut Extension
- Jakarta CDI Extension
- Javax CDI Extension
- Spring DI Extension
- Easy and Customizable Entity Mapping with Java Annotations without the use of Java Reflection API
- Powerful abstract DAO with Custom Query
- Type-Safe Query Builder with DSL
- Supports for Spring and JTA Transactions
- Supports for Basic JDBC Transaction with Transaction Module
- Easy and Customizable Entity Cache
- Supports for most of famous RDBMS
- Supports for @Getter, @Setter and @Data Annotations of Lombok on Entity
- Supports for JSR 380 Validation on Entity during Persist/Update
- Supports for DI with JavaEE, JakartaEE, Micronaut and Spring
For use Jaorm , just include desired modules in dependencies and provide the following compile configuration for maven
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>io.github.ulisse1996</groupId>
<artifactId>jaorm-processor</artifactId>
<version>${jaorm.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
<executions>
<execution>
<id>test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>io.github.ulisse1996</groupId>
<artifactId>jaorm-processor</artifactId>
<version>${jaorm.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</execution>
</executions>
</plugin>
For more details and examples visit : Jaorm Documentation