Commit Graph

909 Commits

Author SHA1 Message Date
Lukas Eder
c06bcfeec4 [jOOQ/jOOQ#11286] Use org.jooq.Meta to discover SQLite primary key, unique key, and foreign key names in code generator 2021-01-22 17:34:28 +01:00
Lukas Eder
d7810d9d59 [jOOQ/jOOQ#11259] NullPointerException when using table valued function
without explicit parameters
2021-01-20 12:37:22 +01:00
Lukas Eder
619bb92702 [jOOQ/jOOQ#11194] Fixed formatting regression 2021-01-14 17:38:38 +01:00
Lukas Eder
a1b08de279 [jOOQ/jOOQ#11218] KotlinGenerator generates Record[N]<T1, T2, ..., TN>
for PK types in DAOs, instead of Record[N]<T1?, T2?, ..., TN?>
2021-01-13 09:37:32 +01:00
Lukas Eder
54938152a9 [jOOQ/jOOQ#11196] Drop support for Java 6 and 7
- More IntelliJ inspections fixed
2021-01-08 21:28:04 +01:00
Lukas Eder
918f91b028 [jOOQ/jOOQ#11196] Drop support for Java 6 and 7
Runtime library - language usage

- Removed [java-8] tags
- Removed F functional interfaces
- Removed Meta.Predicate functional interfaces
- Converted anonymous classes to lambdas
- Removed some explicit final keywords where effectively final works
- Removed Java 6 Jenkinsfile
- try-with-resources
- Merged some catch blocks
- Get rid of type witnesses where possible

Runtime library - JDK API usage

- Prefer Collection.sort() over Collections.sort()
- Use Map.computeIfAbsent for Map<K, List<V>> lazy initialisation
- Replace Iterator::remove calls by Collection::removeIf
- Use Map::computeIfAbsent for Map<K, List<V>> lazy initialisation
- Replace Iterator::remove calls by Collection::removeIf
- Use Comparator::comparing and Comparator::thenComparing
- Use Stream API where not performance critical
- Replaced Map::entrySet iterations by Map::forEach
- Use ResultQuery::collect
- Map::putIfAbsent

Code generation

- Generate lambda for LazySchema's LazySupplier

Unrelated

- Applied a few IntelliJ inspections
- Remove unnecessary explicit array creation
2021-01-08 12:35:47 +01:00
Lukas Eder
b169a60490 [jOOQ/jOOQ#11194] Fixed edge cases 2021-01-06 12:48:45 +01:00
Lukas Eder
562095f27e [jOOQ/jOOQ#11194] Add code generation configuration for Javadoc line
wrapping
2021-01-06 11:32:04 +01:00
Lukas Eder
cfda89a5e8 [jOOQ/jOOQ#11189] Fixed deprecated annotation formatting 2021-01-05 17:37:47 +01:00
Lukas Eder
4bc3f9fb27 [jOOQ/jOOQ#11189] Fixed line wrapping 2021-01-05 17:15:10 +01:00
Lukas Eder
2186758e91 [jOOQ/jOOQ#9728] Log unused warning 2021-01-05 16:34:30 +01:00
Lukas Eder
1f9f3dc269 [jOOQ/jOOQ#9728] Add <comments/> configuration to allow for generating
custom Javadoc on generated code

This includes:

- [jOOQ/jOOQ#11189] Improve generated Javadoc formatting
2021-01-05 16:26:59 +01:00
Lukas Eder
0a8cc44eae [jOOQ/jOOQ#11182] Generate DAO.fetchByXYZ() methods for embeddable types
This includes:

- [jOOQ/jOOQ#11183] Generate record constructor taking a generated POJO
- [jOOQ/jOOQ#11187] Add DAO.fetch(Field<Z>, Collection<? extends Z>)
2021-01-04 18:47:56 +01:00
Lukas Eder
53fff73f84 [jOOQ/jOOQ#11179] Compilation errors in generated DAOs when embeddables
use <replacesFields/>
2021-01-04 16:38:48 +01:00
Lukas Eder
35cc45baa9 [jOOQ/jOOQ#11185] Compilation errors in generated embeddable pojos if
the embeddable is located in a "synthetic" schema
2021-01-04 16:33:20 +01:00
Lukas Eder
98048c8b69 [jOOQ/jOOQ#11180] Clarify unused logger warning message about what is
obsolete
2021-01-04 13:21:57 +01:00
Lukas Eder
5a933882e8 [jOOQ/jOOQ#11176] Add <includeSystemTables/> to exclude SQLite virtual table implementation tables from code generation 2021-01-04 10:28:15 +01:00
Lukas Eder
c67da36141 [jOOQ/jOOQ#11116] Workaround for https://stackoverflow.com/a/47105843/521799 2020-12-14 12:45:15 +01:00
Lukas Eder
89142ca9e6 [jOOQ/jOOQ#8762] [jOOQ/jOOQ#11115] Table.getSchema() should return null
on aliased tables
2020-12-11 15:34:44 +01:00
Lukas Eder
01065c4ea0 [jOOQ/jOOQ#11116] Cache implicit join path references 2020-12-11 14:53:53 +01:00
Lukas Eder
ddae3adfca [jOOQ/jOOQ#11105] NullPointerException when GenerationTool is not properly initialised 2020-12-08 15:19:03 +01:00
Lukas Eder
5c41eea8e3 [jOOQ/jOOQ#11103] NullPointerException when custom JavaGenerator subclasses don't call JavaWriter.printPackageSpecification() 2020-12-08 14:38:37 +01:00
Lukas Eder
c254373003 [jOOQ/jOOQ#11101] Misleading error message when something goes wrong in the code generator 2020-12-08 09:13:48 +01:00
Lukas Eder
a95431170d [jOOQ/jOOQ#11095] KotlinGenerator should take ParameterDefinition nullability into consideration 2020-12-04 15:19:39 +01:00
Lukas Eder
b8f36e6ec1 [jOOQ/jOOQ#11058] Reference AbstractRow if possible 2020-12-03 15:30:52 +01:00
Lukas Eder
8cc490166c [jOOQ/jOOQ#11054] [jOOQ/jOOQ#11063] Generate source for synthetic TVFs 2020-12-01 17:56:02 +01:00
Lukas Eder
b5a6ef98c6 [jOOQ/jOOQ#11054] WIP 2020-12-01 16:06:12 +01:00
Lukas Eder
72fdacae23 [jOOQ/jOOQ#11057] KotlinGenerator should generate kotlin.Deprecated annotation instead of java.lang.Deprecated 2020-12-01 13:16:47 +01:00
Lukas Eder
c5262f505d [jOOQ/jOOQ#9067] A better approach to this fix 2020-11-30 13:23:55 +01:00
Lukas Eder
a6461d6311 [jOOQ/jOOQ#9067] StackOverflowError generating code from Postgresql XML
schema with ARRAY columns
2020-11-27 13:29:31 +01:00
Lukas Eder
0c97a608ee [jOOQ/jOOQ#11032] Compilation errors for <implicitJoinPathsToOne/> when
referenced table is called RECORD_TYPE
2020-11-26 17:35:22 +01:00
Lukas Eder
159eb759e7 [jOOQ/jOOQ#11017] KotlinGenerator should generate equals(other: Any?),
not equals(obj: Any?) on pojos
2020-11-24 10:13:25 +01:00
Lukas Eder
64445647f7 [jOOQ/jOOQ#11016] Kotlin POJO generator produces wrong equals/hashCode for binary types 2020-11-24 09:59:28 +01:00
Lukas Eder
e4aa7c1eed [jOOQ/jOOQ#10801] Add JavaGenerator.printDaoConstructorAnnotations() to allow for custom annotations in generated DAO constructors 2020-11-20 15:43:45 +01:00
Lukas Eder
c4d3644872 [jOOQ/jOOQ#10998] Add <enumsAsScalaSealedTraits/> to let ScalaGenerator
generate Java enums or Dotty enums
2020-11-20 13:50:06 +01:00
Lukas Eder
853e90077c [jOOQ/jOOQ#10900] Compilation error in KotlinGenerator generated code,
when OTHER data type columns have a default value
2020-11-16 10:06:50 +01:00
Lukas Eder
b5f80d0b0f [jOOQ/jOOQ#10851] Add <visibilityModifier/> to allow for generating explicit / implicit public visibility, as well as internal in KotlinGenerator 2020-11-12 16:39:59 +01:00
Lukas Eder
495db82308 [jOOQ/jOOQ#10529] Ignore <records>false</records> for UDTRecords 2020-11-12 11:58:20 +01:00
Lukas Eder
3ffe6de499 [jOOQ/jOOQ#10923] KotlinGenerator produces compilation errors in UDT
Records when <recordsImplementingRecordN/> is true
2020-11-12 10:38:36 +01:00
Lukas Eder
efc6faf0e3 [jOOQ/jOOQ#10877] Compilation error in ScalaGenerator generated code
when table has column "CLASS"
2020-11-11 15:29:45 +01:00
Lukas Eder
676b4ef9c5 [jOOQ/jOOQ#10915] Wrong code generated by KotlinGenerator for
<validationAnnotations/>
2020-11-11 15:12:24 +01:00
Lukas Eder
0e456c703f [jOOQ/jOOQ#10904] KotlinGenerator produces compilation error in generated interfaces when <jpaAnnotations/> is set 2020-11-11 14:26:33 +01:00
Lukas Eder
0114c2a300 [jOOQ/jOOQ#10783] KotlinGenerator does not annotate properties with
<jpaAnnotations/>
2020-11-10 17:26:02 +01:00
Lukas Eder
6d0c56e422 [jOOQ/jOOQ#10899] Add <includeSystemSequences/> to code generator configuration 2020-11-09 16:39:14 +01:00
Lukas Eder
8a3098c3dc [jOOQ/jOOQ#10805] Kotlin POJOs with array properties must implement
equals() and hashCode()
2020-11-09 14:42:20 +01:00
Lukas Eder
c4c727264a [jOOQ/jOOQ#10546] [jOOQ/jOOQ#10883] [jOOQ/jOOQ#10884]
- [jOOQ/jOOQ#10546] Add { Schema, Meta } . { getUniqueKeys(),
getForeignKeys(), getIndexes() }
- [jOOQ/jOOQ#10883] Add Table.getUniqueKeys()
- [jOOQ/jOOQ#10884] Change jOOQ-meta Relations.getUniqueKeys() to return
unique keys only
2020-11-06 15:06:41 +01:00
Lukas Eder
c7f8c8e044 [jOOQ/jOOQ#10877] Compilation error in ScalaGenerator generated code
when table has column CLASS
2020-11-06 11:01:30 +01:00
Lukas Eder
62ac3886a3 [jOOQ/jOOQ#10778] Add support for Packages, UDTs, and ArrayRecord in
KotlinGenerator
2020-11-06 10:17:53 +01:00
Lukas Eder
5e1ab3ed5b [jOOQ/jOOQ#10871] Add to kotlin keywords for use in KotlinGenerator 2020-11-05 17:56:34 +01:00
Lukas Eder
a4728bafe9 [jOOQ/jOOQ#10778] Add support for Packages, UDTs, and ArrayRecord in
KotlinGenerator
2020-11-05 17:49:48 +01:00
Lukas Eder
41e1949d27 [jOOQ/jOOQ#10867] KotlinGenerator should quote identifiers containing $ 2020-11-05 17:20:09 +01:00
Lukas Eder
78c002fa02 [jOOQ/jOOQ#10851] KotlinGenerator should produce Explicit API mode compatible code 2020-11-04 11:42:20 +01:00
Lukas Eder
0ec6fc7525 Removed unused method 2020-11-03 10:04:19 +01:00
Lukas Eder
0fc060ae93 [jOOQ/jOOQ#10837] KotlinGenerator produces invalid syntax for enums with special characters 2020-11-03 09:43:14 +01:00
Lukas Eder
3e82394bef [jOOQ/jOOQ#10835] KotlinGenerator should produce open classes 2020-11-02 16:40:44 +01:00
Lukas Eder
65b97aed0e [jOOQ/jOOQ#10812] Compilation error in KotlinGenerator generated code when <enumConverter/> flag is turned on 2020-10-29 13:36:16 +01:00
Lukas Eder
01f332fa0c [jOOQ/jOOQ#10761] KotlinGenerator produces invalid syntax for PostgreSQL enum types 2020-10-29 12:07:04 +01:00
Lukas Eder
4b34e97651 [jOOQ/jOOQ#10787] KotlinGenerator and ScalaGenerator don't produce
correct POJO.toString(), equals(), hashCode() methods for array types
2020-10-22 16:57:44 +02:00
Lukas Eder
d39059919b [jOOQ/jOOQ#10787] KotlinGenerator and ScalaGenerator don't produce correct POJO.toString(), equals(), hashCode() methods for array types 2020-10-22 16:45:40 +02:00
Lukas Eder
1acc6b15c2 [jOOQ/jOOQ#10768] Kotlin codegen generates uncompileable model class for Postgres int[] 2020-10-22 16:04:03 +02:00
Lukas Eder
71b69bb151 [jOOQ/jOOQ#10779] Compilation error in KotlinGenerator generated DAOs
for data type TINYINT
2020-10-22 13:10:54 +02:00
Lukas Eder
265b31e530 [jOOQ/jOOQ#10782] Wrong code generated for <jpaAnnotations/> Table
annotations with KotlinGenerator
2020-10-22 12:46:44 +02:00
Lukas Eder
7d1f95adf6 [jOOQ/jOOQ#10771] KotlinGenerator creates incorrect @Generated annotation 2020-10-21 12:39:14 +02:00
Lukas Eder
3f063e2df6 [jOOQ/jOOQ#10767] Kotlin code generator generates Record with invalid
kotlin syntax when a column is named "value" and
<recordsImplementingRecordN/> is true
2020-10-21 10:18:17 +02:00
Lukas Eder
44f13d4b4b [jOOQ/jOOQ#6124] [jOOQ/jOOQ#10511] Use regexes instead of booleans
embeddable keys and domains configurations should not just be boolean flags turning the feature on and off, but regular expressions matching specific objects, as always. This way, the feature can be turned on e.g. only for 1 schema, or for some tables, etc.
2020-10-08 14:40:24 +02:00
Lukas Eder
6e13255f9c [jOOQ/jOOQ#10481] Fixed Scala code generation 2020-10-08 11:36:33 +02:00
Lukas Eder
cf276eaf3c [jOOQ/jOOQ#10481] Fixed Kotlin code generation 2020-10-08 11:14:45 +02:00
Lukas Eder
0166a3e1a2 [jOOQ/jOOQ#10481] Fixed Scala and Kotlin code generation 2020-10-07 17:33:58 +02:00
Lukas Eder
e31c815a10 [jOOQ/jOOQ#10481] Support <recordsImplementingRecordN/> 2020-10-07 16:58:26 +02:00
Lukas Eder
dc47fdd342 [jOOQ/jOOQ#8139] scala.UninitializedFieldError in runtime using
generated data objects
2020-10-02 14:32:08 +02:00
Lukas Eder
2811d8e18b [jOOQ/jOOQ#10648] Don't log this info if we're already using schema version providers 2020-09-25 17:23:09 +02:00
Lukas Eder
81e3d91e80 [jOOQ/jOOQ#10653] Make the JavaGenerator::INITIALISER_SIZE configurable through <maxMembersPerInitialiser/> 2020-09-25 16:17:25 +02:00
Lukas Eder
f541eda04d [jOOQ/jOOQ#10654 Make the generation of the serialVersionUID configurable 2020-09-25 15:50:27 +02:00
Lukas Eder
90344a14cd [jOOQ/jOOQ#10648] Log info when code generation run doesn't produce any difference 2020-09-18 11:29:13 +02:00
Lukas Eder
df5f0cdd14 [jOOQ/jOOQ#10632] [jOOQ/jOOQ#10633]
- Log all column and parameter types in DEBUG level in JavaGenerator
- Add DataTypeDefinition.getMatchNames()
2020-09-15 16:19:24 +02:00
Lukas Eder
4ea1ab465f [jOOQ/jOOQ#10588] Apply synthetic keys to jOOQ-meta, use implicit joins (WIP) 2020-09-04 17:51:20 +02:00
Lukas Eder
3616cc43c7 [jOOQ/jOOQ#10588] Rename <syntheticKeys/> to <syntheticObjects/> 2020-09-04 11:29:22 +02:00
Lukas Eder
d5365531c9 [jOOQ/jOOQ#10588] Deprecate <overridePrimaryKeys/> 2020-09-04 09:31:19 +02:00
Lukas Eder
69fe7b2728 [jOOQ/jOOQ#10587] NullPointerException when misconfiguring code generator, lacking a <database/> 2020-09-03 16:56:21 +02:00
Lukas Eder
10c12b3752 [jOOQ/jOOQ#681] Generate also Schema.getDomains() 2020-09-03 15:01:55 +02:00
Lukas Eder
d864df381c [jOOQ/jOOQ#10554] Distribute indexes to nested classes only if necessary 2020-09-03 14:34:15 +02:00
Lukas Eder
f3b390a0d7 [jOOQ/jOOQ#10586] Some missing nullable annotations in generated code 2020-09-03 14:17:12 +02:00
Lukas Eder
4a8078c3d5 [jOOQ/jOOQ#10579] JavaWriter::beforeClose shouldn't search for package
using a regex
2020-09-03 10:25:32 +02:00
Lukas Eder
387912cbd1 [jOOQ/jOOQ#10576] Compilation error when 2 Oracle packages both contain the same record type name 2020-09-02 16:10:08 +02:00
Lukas Eder
a35a6c052f [jOOQ/jOOQ#10554] Re-generated example code 2020-09-02 14:37:09 +02:00
Lukas Eder
792212a944 [jOOQ/jOOQ#10554] Avoid workaround for too large initialisers when
unnecessary
2020-09-02 14:00:04 +02:00
Lukas Eder
fa532b4aa9 [jOOQ/jOOQ#10575] Add some empty protected methods to generate custom
class footers in reference classes
2020-09-02 12:48:20 +02:00
Lukas Eder
ef181a93f6 [jOOQ/jOOQ#6183] [jOOQ/jOOQ#6248] Support kotlin package constants
All sorts of fixes, including:

- Putting Tables.kt and Routines.kt in a .references subpackage
- Correctly applying convertToIdentifier to package and class names
- Correctly applying escapeWindowsForbiddenNames
- Correctly importing generated constants
2020-09-02 12:13:02 +02:00
Lukas Eder
5aeadd3017 [jOOQ/jOOQ#10561] Various compilation errors when schema, table, key
names conflict
2020-08-31 17:38:49 +02:00
Lukas Eder
c8e26f86c4 [jOOQ/jOOQ#10532] Fixed generated code for Java 8 and less 2020-08-28 13:40:33 +02:00
Lukas Eder
ddf1175714 [jOOQ/jOOQ#10534] <enumConverter/> and <lambdaConverter/> don't work in ScalaGenerator and KotlinGenerator 2020-08-28 11:22:17 +02:00
Lukas Eder
9d5c87d35a [jOOQ/jOOQ#10534] <enumConverter/> and <lambdaConverter/> don't work in ScalaGenerator and KotlinGenerator 2020-08-28 10:59:46 +02:00
Lukas Eder
da0a801bc5 [jOOQ/jOOQ#10535] Generated code should import org.jooq.impl.SQLDataType if possible 2020-08-26 14:14:08 +02:00
Lukas Eder
fe96278656 [jOOQ/jOOQ#8353] Support placing comments on embeddables 2020-08-21 17:13:48 +02:00
Lukas Eder
0abfdbec0c [jOOQ/jOOQ#2530] Minor scala code generation improvement 2020-08-21 16:27:48 +02:00
Lukas Eder
564b71b06b [jOOQ/jOOQ#9744] Java 6 fix 2020-08-21 15:14:33 +02:00
Lukas Eder
e58593e690 [jOOQ/jOOQ#9744] Add <locale/> to code generator <target/> specification 2020-08-21 14:32:35 +02:00
Lukas Eder
afa0ce5748 [jOOQ/jOOQ#10481] Don't generate record constructor with replaced fields 2020-08-20 17:18:17 +02:00
Lukas Eder
a742cffe27 [jOOQ/jOOQ#10511] Add <embeddableDomains/> to allow for wrapping all
DOMAIN types in embeddables

This includes [jOOQ/jOOQ#10481] removing replaced getters / setters from
generated records
2020-08-20 16:51:56 +02:00
Lukas Eder
bb16438f07 [jOOQ/jOOQ#10511] Add <embeddableDomains/> to allow for wrapping all
DOMAIN types in embeddables
2020-08-20 15:38:48 +02:00