Commit Graph

1332 Commits

Author SHA1 Message Date
Lukas Eder
dc4a45e59f [jOOQ/jOOQ#17634] Compilation errors in generated POJO code when
generating <immutableInterfaces/> on a table accepting UDTs
2024-11-22 08:54:08 +01:00
Lukas Eder
405e2bb804 [jOOQ/jOOQ#17632] Use new utility 2024-11-19 09:12:47 +01:00
Lukas Eder
6b248fdc87 [jOOQ/jOOQ#17624] Correct order of excludes / includes, copy paste error 2024-11-15 13:24:29 +01:00
Lukas Eder
ee6db644ea [jOOQ/jOOQ#17624] Add support for per-generation-mode type <includes> and <excludes> matching 2024-11-15 08:54:08 +01:00
Lukas Eder
ec256172c5 [jOOQ/jOOQ#9736] InformationSchema, XMLDatabase and XMLGenerator support 2024-11-14 15:43:25 +01:00
Lukas Eder
e9bf333f64 [jOOQ/jOOQ#9736] Add runtime model for foreign key ON DELETE and ON UPDATE actions
This includes:

- Add ForeignKey API
- Implement MetaImpl
- Add jOOQ-meta API
- Add H2Database implementation
- Add code generation support
2024-11-14 11:47:03 +01:00
Lukas Eder
ccd7b94f6c [jOOQ/jOOQ#17592] Missing Generated annotations on nested Path classes 2024-11-11 09:23:49 +01:00
Lukas Eder
1200fa0fa5 [jOOQ/jOOQ#7406] Add code generation support for SETOF UDT returning
functions in PostgreSQL
2024-11-08 14:31:45 +01:00
Lukas Eder
b3d219e5eb [jOOQ/jOOQ#17498] GenerationTool should be more clear about commercial
dependencies, when lookups don't work
2024-10-25 08:11:44 +02:00
Lukas Eder
63b3051f7b [jOOQ/jOOQ#8705] Add code generation configuration to generate primary key based equals() and hashCode() on POJOs 2024-10-23 10:22:59 +02:00
Lukas Eder
4a88729447 [jOOQ/jOOQ#17487] Add code generation configuration flags to specify
which columns to include / exclude in generated POJO equals() and
hashCode() implementations
2024-10-22 16:59:21 +02:00
Lukas Eder
06eb51fda8 [jOOQ/jOOQ#17477] Bad code generated when activating <springDao/> but not <springAnnotations/> 2024-10-22 09:15:19 +02:00
Lukas Eder
8aee20e2b0 [jOOQ/jOOQ#17148] Support Scala 3 enum types 2024-10-22 08:59:40 +02:00
Lukas Eder
809e0c1cf9 [jOOQ/jOOQ#17476] Support new Scala 3 keywords in code generator 2024-10-22 08:44:22 +02:00
Lukas Eder
48d19c3b29 [jOOQ/jOOQ#17470] Add <description/> to all pom.xml files 2024-10-21 14:12:16 +02:00
Lukas Eder
8a78105439 [jOOQ/jOOQ#17455] Kotlin generated code should use by lazy syntax for cached Path instances 2024-10-17 14:16:26 +02:00
Lukas Eder
58b3d06b48 [jOOQ/jOOQ#17434] Wrong field indexes in code generated in record getters and setters for non-replacing embeddables when database reports non-consecutive column ordinals 2024-10-16 14:37:49 +02:00
Lukas Eder
b4ed7a1813 [jOOQ/jOOQ#15335] Support synonym export/import in InformationSchema XML 2024-10-02 14:30:31 +02:00
Lukas Eder
8f689c6a1c [jOOQ/jOOQ#17402] DefaultGeneratorStrategy should guard against path
classes receiving the same name as their enclosing class
2024-10-01 11:11:01 +02:00
Lukas Eder
b68ec5fbd2 [jOOQ/jOOQ#9574] Add org.jooq.Synonym
This includes:

- Code generation support
- MetaSQL support
- HSQLDB code generation
2024-09-26 14:47:40 +02:00
Lukas Eder
54a336685d [jOOQ/jOOQ#17247] Log warnings when Java record constructor has more than 254 parameters 2024-09-16 13:22:39 +02:00
Lukas Eder
dce730d397 [jOOQ/jOOQ#12494] Rename Record.changed() to Record.touched() 2024-09-12 15:21:59 +02:00
Lukas Eder
b6f8e56394 [jOOQ/jOOQ#17236] Improve error message in GeneratorWriter when brackets
mismatch, including the offending file
2024-09-12 10:42:02 +02:00
Lukas Eder
2c3fde2886 [jOOQ/jOOQ#644] Support record/data/case classes
None of these special classes support inheritance, so we must avoid generating inheritance with these class types.

This includes:

- [jOOQ/jOOQ#17232] Generate copy constructors with <pojosAsJavaRecordClasses/>
2024-09-11 12:23:40 +02:00
Lukas Eder
ca9e7a311d [jOOQ/jOOQ#644] Fix wrong import of non-existing interface
When we have an implicit Converter, getJavaType() unfortunately produces
an import even if the type is ultimately not used. This should probably
be fixed separately as I keep running into this problem.
2024-09-06 16:53:16 +02:00
Lukas Eder
99dd011913 [jOOQ/jOOQ#644] [jOOQ/jOOQ#17189] Lots of ScalaGenerator improvements
- Support POJO hierarchies (use constructor args instead of properties)
- Correct overrides of interfaces
- Avoid covariant Array[X] overrides (that's Java only)
2024-09-06 13:29:29 +02:00
Lukas Eder
e45a9eaf1f [jOOQ/jOOQ#17196] ScalaGenerator produces wrong code when generated interfaces (traits) extend multiple other interfaces 2024-09-06 09:53:30 +02:00
Lukas Eder
f389ed3645 [jOOQ/jOOQ#644] immutablePojo type hierarchy support 2024-09-06 09:31:35 +02:00
Lukas Eder
a2490eb03c [jOOQ/jOOQ#644] Add matcher strategies for the record types 2024-09-05 16:14:36 +02:00
Lukas Eder
cb80ce4672 [jOOQ/jOOQ#644] Don't generate Scala POJO hierarchies yet 2024-09-05 14:33:36 +02:00
Lukas Eder
82d210d0d4 [jOOQ/jOOQ#644] KotlinGenerator fixes for POJO hierarchy
In Kotlin, classes and attributes have to be open to be overridden, and their overriding attributes have to declare this. Also, the super constructor must be called explicitly
2024-09-05 14:00:39 +02:00
Lukas Eder
1cdf577120 [jOOQ/jOOQ#644] Support POJO type hierarchy
When using <interfaces/>, the various setters and constructors must share conversion logic, ideally in a new private method per UDT column / attribute
2024-09-05 13:28:51 +02:00
Lukas Eder
054c7f6224 [jOOQ/jOOQ#644] Support POJO type hierarchy
This first draft will omit calls to super.xyz() in various POJO type hierarchy levels, assuming the super type implementation (and its attributes) can be ignored completely given that all methods are overridden. If this assumption isn't true, we can still fix things, but I prefer not to complicate *everything* unless it's necessary.

Some implementations are still wrong as they should downcast known supertypes to their subtypes, e.g. constructors when accepting <interfaces/> types.
2024-09-05 12:03:33 +02:00
Lukas Eder
265798730f [jOOQ/jOOQ#644] [jOOQ/jOOQ#8209] Invalid code when generating both POJOs and interfaces with UDTs 2024-09-04 18:15:44 +02:00
Lukas Eder
8094b21cf4 [jOOQ/jOOQ#17179] Fix typo 2024-09-04 15:44:50 +02:00
Lukas Eder
18f2f24dae [jOOQ/jOOQ#17180] Record constructor should accept embeddable interface
If <interfaces/> is set to true, then the Record constructor should accept the interface type of an embeddable (or UDT), not the Record type, just like the setter.

This includes:

- [jOOQ/jOOQ#17179] Bad replacing EmbeddableRecord setter generated when <interfaces/> is active
2024-09-04 15:33:03 +02:00
Lukas Eder
fbee6b2824 [jOOQ/jOOQ#17165] Embeddables replacing their fields should replace
their fields also in generated POJOs and interfaces
2024-09-03 11:42:20 +02:00
Lukas Eder
e39a03962c [jOOQ/jOOQ#17169] Overload resolution ambiguity in KotlinGenerator
generated code for embeddable domains

This includes:

[jOOQ/jOOQ#11716] Fix this also for KotlinGenerator
2024-09-02 15:11:52 +02:00
Lukas Eder
3b10066935 [jOOQ/jOOQ#11716] Using embedded domains with POJO generation results in duplicate getters 2024-09-02 13:57:55 +02:00
Lukas Eder
2766f16ce5 [jOOQ/jOOQ#17146] Unsupport ScalaGenerator in OSS edition 2024-08-30 10:15:32 +02:00
Lukas Eder
54dbdcffa4 [jOOQ/jOOQ#644] Fix compilation error in RecordType setters/getters
RecordType setters/getters should use the Mode.DEFAULT for the attribute types, not the Mode.RECORD_TYPE, in case a hierarchical record references a flat record!
2024-08-29 16:38:50 +02:00
Lukas Eder
86d75b208e [jOOQ/jOOQ#12180] Fix typo 2024-08-29 15:55:40 +02:00
Lukas Eder
172a0e9b3d [jOOQ/jOOQ#12180] Add Scala3Generator 2024-08-29 13:37:29 +02:00
Lukas Eder
89a4785f30 [jOOQ/jOOQ#644] Generated RECORD_TYPE classes don't need to be generic 2024-08-29 10:21:29 +02:00
Lukas Eder
dba849cf5d [jOOQ/jOOQ#644] Generated RECORD_TYPE classes don't need to be generic 2024-08-29 10:19:59 +02:00
Lukas Eder
d15f9f0d04 [jOOQ/jOOQ#644] Revert NOT INSTANTIABLE support for now
There are numerous problems in jOOQ's internals, which assume that a UDTRecord is always non-abstract (e.g. to access the UDT qualifier via reflection). This cannot be avoided, for now.
2024-08-28 15:43:06 +02:00
Lukas Eder
e7d82f6764 [jOOQ/jOOQ#644] Add support for Oracle TYPE .. UNDER type hierarchies
This includes:

- Add support for NOT INSTANTIABLE
- Handle synonym references
2024-08-28 13:25:50 +02:00
Lukas Eder
175380c1dc [jOOQ/jOOQ#644] Add support for Oracle TYPE .. UNDER type hierarchies
This includes:

- [jOOQ/jOOQ#11371] Generate UDT.getSupertype() and UDT.getSubtypes()
2024-08-28 12:56:34 +02:00
Lukas Eder
d57dcdbb85 [jOOQ/jOOQ#17099] [jOOQ/jOOQ#17117] Code generation escaping issues
This includes:

- [jOOQ/jOOQ#17099] KotlinGenerator contains incomplete list of Kotlin forbidden identifier characters
- [jOOQ/jOOQ#17117] Bad code generated for enum values containing backslash character
2024-08-21 14:18:18 +02:00
Lukas Eder
044cebb85b [jOOQ/jOOQ#17063] Update DataType.isXYZ() Javadoc with new types 2024-08-14 11:40:55 +02:00