## What is Torque?

Apache Torque is an object-relational mapper for java. In other words, Torque lets you access and manipulate data in a relational database using java objects. Unlike most other object-relational mappers, Torque does not use reflection to access user-provided classes, but it generates the necessary classes (including the Data Objects) from an XML schema describing the database layout. The XML file can either be written by hand or a starting point can be generated from an existing database. The XML schema can also be used to generate and execute a SQL script which creates all the tables in the database.

As Torque hides database-specific implementation details, Torque makes an application independent of a specific database if no exotic features of the database are used.

Usage of code generation eases the customization of the database layer, as you can override the generated methods and thus easily change their behavior. A modularized template structure allows inclusion of your own code generation templates during the code generation process.

Torque 5.0 and 5.1 requires JDK 1.8 or higher. Torque 4.0 requires JDK 1.6 or higher. Also labelled version 5.0 it is still considered highly compatible with version 4. Current development version is 5.2-SNAPSHOT.

## Releases

- The most recent production release of Torque is Torque 5.1.
- The previous stable production release is Torque 4.0.

## Elements of Torque 4 and 5

Torque consists of multiple parts:

torque-runtime
  The Torque Runtime contains everything to allow an application to access the database. It is the only component of Torque needed in your application and can be used standalone.
torque-generator
  The Torque Generator is a general-purpose code generator which can be used to generate the O/R classes, SQL scripts etc for OR Mapping, but can also be used for other code generation purposes. If you use the Torque Maven Plugin or Torque Ant Tasks, you do not need to use the generator directly.
maven-torque-plugin
  The Torque Maven Plugin makes the Torque generator accessible in a Maven 2/3 build.
torque-ant-tasks
  The Torque Ant tasks integrate the Torque generator in an Ant build.
torque-templates
  The Torque Templates contain the building blocks used by the generator to create the O/R classes, SQL scripts and the like. You can extend or change the templates if you want to customize the output of the generator, or even write templates of your own.

## The Apache Software Foundation

Torque is an Apache project, and is part of a larger community of developers and users.

Apache Torque, Torque, Apache, the Apache feather logo, and the Apache Torque project logo are trademarks of The Apache Software Foundation.