Symqle modeler project is a collection of code generation tools for Symqle sql query builder model.

The tools read database metadata and generate multiple source files. The files usually go to two separate directories - output directory and samples directory. Optionally, you may choose to put them into single directory. Here is short description of the source files:

Output directory

These classes are expected to be used as is.

  • Table classes - one per database table. Each class is Java representation of table metadata.
  • Primary key classes - one per each table, to out, which has auto-increment primary key.

Samples directory

These classes are not for direct use, although it is possible. They represent your business, initial implementation follows storage structure. Copy them and edit as necessary. Read Symqle guide to understand these classes better.

  • Data transfer object classes - one per database table.
  • Data mapping objects - one per data transfer object.
  • Data access objects - one interface per database table having primary key.
  • Data access object implementations - two for each data access object interface.


The product is released as 3 separate tools.


Symqle modeler is highly customizable. All tools use the same parameters, please find detail description of the parameters in parameter reference.

Each tool has its own way of setting parameters, described in the sub-project documentation.


All errors are logged and messages are understandable. Typical problem may be missing mandatory parameter or failed database connection. In some cases there are no messages but sources are not generated.

First, inspect outputDirectory for generated Table classes. If nothing is there, double check catalog and schema parameters - in case of mistype Symqle modeler just finds no matching tables. For Oracle and DB2 schema name should uppercase. Re-run with verbose logging - each table read from database metadata is logged at debut level.

If tables are generated but data objects are not, the reason may be unknown to modeler data type. If Symqle modeler cannot map database type to java type, it creates a method returning Column<Void> in table class and Void attributes in data transfer object. It does not generage data mapping and data access objects (because it has no idea how to convert database value into something reasonable). grep Void *.java

If table has no primary key, Symqle modeler generates table, data transfer and data mapping objects but does not generate DAO. Standard getById and delete (again by id) methods make no sense for those tables and modeler generates no samples. Write DAO from scratch.

Browse forums and ask questions there. If you feel like the tool is missing a feature or has a defect, you can fill a feature request or bug report in issue tracker