Skip to content
James Moger edited this page Apr 9, 2016 · 1 revision

This is an overview of the fundamental differences between the original JaQu project and the current feature set of iciql.

Iciql JaQu
core
deployment small, discrete library depends on H2 database jar file
databases H2, HSQL, Derby, MySQL, PostreSQL, and SQLite H2 only
logging console, SLF4J, or custom logging console logging
exceptions always includes generated statement in exception, when available --
column mappings wildcard queries index result sets by column name all result sets built by field index
this can fail for wildcard queries
savepoints bulk operations (insert, update, delete) use savepoints with rollback in the event of failure --
syntax and api
VIEWs create readonly views either from a class definition or from a fluent statement --
Foreign Key Constraints model classes may be annotated with foreign key constraints --
dynamic queries methods and where clauses for dynamic queries that build iciql objects --
DROP syntax to drop a table or view
BETWEEN syntax for specifying a BETWEEN x AND y clause --
(NOT) IN syntax (oneOf, noneOf) for specifying a (NOT) IN clause --
compound nested conditions WHERE (x = y OR x = z) AND (y = a OR y = b) --
dynamic DAOs DAO interfaces with annotated statements may be declared and dynamically generated --
types
primitives fully supported --
enums fully supported --
DECIMAL(length,scale) can specify length/precision and scale --
BOOLEAN flexible mapping of boolean as bool, varchar, or int --
BLOB partially supported (can not be used in a WHERE clause) --
Custom partially supported uses custom-defined data type adapter (can not be used in a WHERE clause) --
UUID fully supported (H2 only) --
configuration
DEFAULT values set from annotation, default object values, or Define.defaultValue() set from annotations
Interface Configuration
Mapped Fields
all fields are mapped regardless of scope
fields are ignored by annotating with @IQIgnore
all public fields are mapped
fields are ignored by reducing their scope
Index names can be set --
Clone this wiki locally