Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Draft:HotRod ORM Suite

From Wikipedia, the free encyclopedia

HotRod
Stable release
5.1.24 / July 12, 2026; 19 days ago (2026-07-12)[1]
Written inJava
Operating systemCross-platform
PlatformJava
TypeObject–relational mapping
LicenseDual-licensed: Apache-2.0
Websitegithub.com/hotrodorm/hotrod
Repositorygithub.com/hotrodorm/hotrod

HotRod ORM Suite, HotRod 5 is an open-source Object-Relational Mapping (ORM) suite of products designed for Spring and Spring Boot, focused on rapid development and high-performance persistence in relational databases. Ir provides a full-featured API to retrieve and update data from and to a database using classes generated from a database schema.

HotRod follows the database-first approach, where the persistence layer is generated and updated from existing database schemas with tables and views.

Modules

[edit]

The HotRod suite includes:

  • CRUD - The main persistence layer that includes the operations for INSERT, UPDATE, SELECT, and DELETE
  • LiveSQL - Flexible SQL querying directly from the applications with live syntax validation
  • Nitro - To use any SQL query, including native extensions, combined with dynamic SQL as necessary
  • Torcs - To identify slow queries at runtime and retrieve their execution plans

Highligths

[edit]

This suite compares to other ORMs products:

  • Entity Tuples: retrieves separated tuples from joins
  • Automated schema discovery: discovers the tables and views in the schemas and prepares the persistence sayer
  • Automated schema update: updates the persistence layer from schema changes without losing custom changes
  • Comprehensive data type resolution: default and rule-based type resolution mapping
  • Feature-rich LiveSQL: LiveSQL includes a developed and customizable expression language to express simple to complex queries
  • Built-in low performace query detection: Torcs automatically detects and ranks slow queries by different criteria

More features are described at [1]

Examples

[edit]

To compute the value of 3 * 7 in the database:

Row row = sql.select(sql.val(3).mult(7).as("total")).executeOne();

System.out.println("total=" + row.get("total")); // total=21

To select from a table:

List<Tuple1<Product>> rows = sql
  .select(p.star(), p.shipping.plus(p.tax).minus(p.discount).as("net"))
  .tuples()
  .from(p)
  .where(p.shipping.plus(p.tax).minus(p.discount).le(10))
  .orderBy(p.category, p.name.desc())
  .limit(50)
  .execute();

for (Tuple1<Product> r : rows) {
  Product prod = r.getA(); // all columns correctly named, cast, typed, and/or converted here
  System.out.println("Product: " + prod);
  System.out.println("Net: " + r.get("net"));
}

A join can be expressed as:

List<Tuple2<Invoice, Client>> rows = sql
  .select(i.star(), c.star(), i.amount.mult(c.discountPct).as("appliedDiscount"))
  .tuples()
  .from(i)
  .join(c, c.id.eq(i.clientId))
  .where(c.branchName.upper().like("%SOUTH%"))
  .orderBy(c.id, i.purchaseDate.desc())
  .execute();

for (Tuple2<Invoice, Client> r : rows) {
  Invoice inv = r.getA(); // all columns correctly named, cast, typed, and/or converted here
  Client cli = r.getB();  // same here
  System.out.println("Invoice: " + inv);
  System.out.println("Client: " + cli);
  System.out.println("Applied Discount: " + r.get("appliedDiscount"));
}

References

[edit]
  1. ^ github.com https://github.com/hotrodorm/hotrod/releases/tags. Retrieved 2026-07-12. {{cite web}}: Missing or empty |title= (help)

 This article incorporates text from a free content work. Licensed under Apache License 2.0 (license statement/permission). Text taken from HotRod ORM Suite​.

Category:Object–relational mapping Category:Java (programming language) libraries Category:Java enterprise platform