title: ${project.name} ${project.version} released
id: ${project.version}
date: ${project.buildDate}
- note: "If you are upgrading and using EnumId mapping you will have to update your models to define the target class for the enumid mapping."
+ note: ''
+ If you are upgrading and using EnumId mapping you will have to update your enums to define the target class for the EnumId interface since it is now generified.
+
+ Switching to using generic types with the EnumId interface allows you to implement alternative enum-type mappings which may make more sense for your business logic.
+ ''
html: ~
text: ~
security: ~
changes:
- Revised EnumId interface to support generic types (pr-6)
additions:
- - Add syntax for IN and NOT IN (pr-7)
- - Add support for nested AND/OR conditions (pr-8)
+ - Add syntax oneOf/noneOf for IN and NOT IN (pr-7)
+ - Add support for compound nested AND/OR conditions (pr-8)
- Add support for mapping SQL BOOLEAN to primitive numeric types, not just object numeric types
- Add support for customizing EnumId mapping, you can now map enum constants to values of your choice as long as they are a standard type
dependencyChanges:
<tr><td>dynamic queries</td><td>methods and where clauses for dynamic queries that build iciql objects</td><td>--</td></tr>\r
<tr><td>DROP</td><td>syntax to drop a table or view</td><td></td></tr>\r
<tr><td>BETWEEN</td><td>syntax for specifying a BETWEEN x AND y clause</td><td>--</td></tr>\r
+<tr><td>(NOT) IN</td><td>syntax (oneOf, noneOf) for specifying a (NOT) IN clause</td><td>--</td></tr>\r
+<tr><td>compound nested conditions</td><td>WHERE (x = y OR x = z) AND (y = a OR y = b)</td><td>--</td></tr>\r
<tr><th colspan="3">types</th></tr>\r
<tr><td>primitives</td><td>fully supported</td><td>--</td></tr>\r
<tr><td>enums</td><td>fully supported</td><td>--</td></tr>\r
<tr><td>DEFAULT values</td><td>set from annotation, <em>default object values</em>, or Define.defaultValue()</td><td>set from annotations</td></tr>\r
<tr><td>Interface Configuration<br/>Mapped Fields</td><td><em>all fields</em> are mapped regardless of scope<br/>fields are ignored by annotating with @IQIgnore</td><td><em>all public fields</em> are mapped<br/>fields are ignored by reducing their scope</td></tr>\r
<tr><td>Index names</td><td>can be set</td><td>--</td></tr>\r
-</table>
\ No newline at end of file
+</table>\r
// AND (\r
// region = 'LA' OR region = 'CA'\r
// )\r
-List<Customer> regionals =\r
- db.from(model)\r
- .where(model.customerId).isNotNull()\r
- .and(model.region).isNotNull()\r
- .and(new Or<Customer>(db, model) {{\r
- or(model.region).is("LA");\r
- or(model.region).is("CA");\r
- }});\r
-\r
-List<Customer> regionalType1s =\r
- db.from(model)\r
- .where(new And<Customer>(db, model) {{\r
- and(model.type).is(1);\r
- and(new Or<Customer>(db, model) {{\r
- or(model.region).is("CA");\r
- or(model.region).is("LA");\r
+List<Customer> regionals = db.from(model)\r
+ .where(model.customerId).isNotNull()\r
+ .and(model.region).isNotNull()\r
+ .and(new Or<Customer>(db, model) {{\r
+ or(model.region).is("LA");\r
+ or(model.region).is("CA");\r
}});\r
- }});\r
-\r
---JAVA---\r
\r
### Finding Matches for a List of Values\r