docs: update Exposed 1.0.0 migration guide with troubleshooting and fixes
Refined migration steps to address compatibility issues with `JdbcTransaction` and `PreparedStatementApi`. Added detailed troubleshooting for `exec` and `executeUpdate` usage. Updated formatting and clarified best practices for transitioning to Exposed 1.0.0.
This commit is contained in:
+11
-5
@@ -2,7 +2,7 @@
|
|||||||
type: Reference
|
type: Reference
|
||||||
status: ACTIVE
|
status: ACTIVE
|
||||||
owner: Lead Architect
|
owner: Lead Architect
|
||||||
date: 2026-01-31
|
date: 2026-02-02
|
||||||
---
|
---
|
||||||
|
|
||||||
# Architektonische Evolution – Migrationsleitfaden: Exposed 1.0.0-rc-4 → 1.0.0
|
# Architektonische Evolution – Migrationsleitfaden: Exposed 1.0.0-rc-4 → 1.0.0
|
||||||
@@ -102,11 +102,17 @@ Das Handling von JSONB-Spalten in SQLite wurde vereinheitlicht.
|
|||||||
|
|
||||||
Bei der Migration von `DatabaseUtils.kt` traten Probleme mit der Auflösung von `exec` und `executeUpdate` auf.
|
Bei der Migration von `DatabaseUtils.kt` traten Probleme mit der Auflösung von `exec` und `executeUpdate` auf.
|
||||||
|
|
||||||
* **Problem:** Die generische `Transaction` Klasse bietet in Exposed 1.0.0 keinen direkten Zugriff mehr auf `exec` mit `ResultSet`-Verarbeitung oder `executeUpdate`. Diese Methoden sind nun spezifischer in `JdbcTransaction` oder `PreparedStatementApi` verortet.
|
* **Problem:** Die generische `Transaction` Klasse bietet in Exposed 1.0.0 keinen direkten Zugriff mehr auf `exec` mit
|
||||||
|
`ResultSet`-Verarbeitung oder `executeUpdate`. Diese Methoden sind nun spezifischer in `JdbcTransaction` oder
|
||||||
|
`PreparedStatementApi` verortet.
|
||||||
* **Lösung:**
|
* **Lösung:**
|
||||||
* **Explizite `JdbcTransaction`:** Unsere Transaction-Wrapper (`transactionResult`) wurden angepasst, um `JdbcTransaction` als Receiver (`this`) zu erzwingen.
|
* **Explizite `JdbcTransaction`:** Unsere Transaction-Wrapper (`transactionResult`) wurden angepasst, um
|
||||||
* **`exec` mit `StatementType`:** Aufrufe von `exec` müssen nun den `explicitStatementType` Parameter (z.B. `StatementType.SELECT`) nutzen, damit der Compiler die korrekte Überladung wählt.
|
`JdbcTransaction` als Receiver (`this`) zu erzwingen.
|
||||||
* **`executeUpdate` Workaround:** Da `PreparedStatementApi` in Exposed 1.0.0 nicht `AutoCloseable` ist und `executeUpdate` teilweise schwer aufzulösen war, nutzen wir `try-finally` mit `closeIfPossible()` und greifen bei Bedarf auf die native JDBC Connection zu.
|
* **`exec` mit `StatementType`:** Aufrufe von `exec` müssen nun den `explicitStatementType` Parameter (z.B.
|
||||||
|
`StatementType.SELECT`) nutzen, damit der Compiler die korrekte Überladung wählt.
|
||||||
|
* **`executeUpdate` Workaround:** Da `PreparedStatementApi` in Exposed 1.0.0 nicht `AutoCloseable` ist und
|
||||||
|
`executeUpdate` teilweise schwer aufzulösen war, nutzen wir `try-finally` mit `closeIfPossible()` und greifen bei
|
||||||
|
Bedarf auf die native JDBC Connection zu.
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
// Beispiel für korrekten Low-Level Zugriff in Exposed 1.0.0
|
// Beispiel für korrekten Low-Level Zugriff in Exposed 1.0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user