-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add adamGenerateJooqMetamodel #13
Conversation
return jooqType.getTypeName(); | ||
} | ||
|
||
private boolean isIdentity(Field field) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hab grad im int test was gesehen. Gilt das sequence Flag als identity? (Das wären IMHO eigentlich 2 unterschiedliche Ding, auch wenn's konzeptuell das gleiche macht)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich glaube bei einer Identity erstellt Oracle einfach im Hintergrund eine Sequence. Ich bin mir nicht sicher, ob wir die beiden für dieses Tool unterscheiden müssen.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ob Oracle intern dann noch eine sequence braucht weiss ich nicht. Verwendung ist aber anders.
identity: client lässt Feld leer und Server befüllt es beim insert.
sequence: client lädt sequence Wert vor dem insert und füllt den Wert im Record schon.
-> heisst also auch jooq muss damit anders umgehen. Wobei jooq glaub kein automatisches sequence handling kann.
Wenn im yml das sequence=true als identity interpretiert werden soll (und das macht mindestens ein Test), dann sollte es jetzt passen.
import org.jooq.meta.jaxb.Strategy; | ||
import org.jooq.meta.jaxb.Target; | ||
|
||
public class AdamJooqMetamodelGenerator { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Die Klasse hab ich aus dem Task extrahiert, weil ich sonst im Test Probleme mit unterschiedlichen loggings im classpath hatte.
gradle-plugin/build.gradle
Outdated
@@ -13,6 +13,8 @@ sourceCompatibility = 21 | |||
dependencies { | |||
implementation gradleApi() | |||
implementation project(':core') | |||
implementation project(':yml') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Die yml dependency sollte hier glaubs nicht verwendet werden. Wäre cool, wenn das auch mit anderen Quellen geht. Zur Laufzeit muss :yml dann natürlich vorhanden sein, falls eine YML Quelle verwendet wird.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ist das zur Laufzeit eh 1 jar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nein, die yml dependency muss explizit dazu genommen werden falls man ne yml source verwenden will. Analog zu Oracle usw.
return jooqType.getTypeName(); | ||
} | ||
|
||
private boolean isIdentity(Field field) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich glaube bei einer Identity erstellt Oracle einfach im Hintergrund eine Sequence. Ich bin mir nicht sicher, ob wir die beiden für dieses Tool unterscheiden müssen.
|
||
private void ensureSchema() { | ||
if (schema == null) { | ||
String source = (String) getProperties().get(YML_SOURCE_PROPERTY); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hier kannst du SourceAndSinkFactory.getInstance().getSource(....) verwenden. Dann hast du keine depencency zu yml mehr und wir können auch das MetaModel aus einem echten DB-Schema generieren (ja, ich sehe den Sinn aktuell auch nicht :) ).
No description provided.