So..nachdem wir im Schnee beim Boarden wieder etwas Energie getankt haben, ist unser Projekt diese Woche wieder ein paar Schritte vorangeschritten. Zum ersten Mal haben wir uns an die Relationen gewagt und die OneToOne-Relation implementiert. Somit können wir nun zwei Entitäten miteinander joinen.
Hier ist ein Beispiel unserer bisherigen Implementierung. Eine Person hat eine DriversLicense, die mit der Person mittels „oneToOne<DriversLicense>“ verknüpft wird:
class Person : Entity() {
companion object : DataAccessObject<Person>()
var firstname by string()
var lastname by string()
var driversLicense by oneToOne<DriversLicense>()
}
class DriversLicense : Entity() {
companion object : DataAccessObject<DriversLicense>()
var description by string().nullable()
}
Das zugehörige generierte Sql ist das folgende:
SELECT
a.id aid, a.firstname afirstname,
a.lastname alastname,
a.createdAt acreatedAt,
a.changedAt achangedAt,
b.id bid, b.description bdescription,
b.createdAt bcreatedAt,
b.changedAt bchangedAt
FROM persons a
INNER JOIN drivers_licenses b
ON a.drivers_licenses_id = b.id
Außerdem haben wir nach viel Herumprobieren und einer Menge Refactoring in unserem Deployment unser erstes Testprojekt im Maven Snapshot-Repository veröffentlicht. Maven ist sehr strickt, was das Veröffentlichen angeht und es müssen gerade beim ersten Mal einige Schritte durchlaufen werden, bis man überhaupt einen Account mit eigenem Namespace erstellt hat, mit dem man etwas veröffentlichen darf. Außerdem mussten Keys generiert, als Zertifikat online zur Verfügung gestellt und Files damit signiert werden . Das POM-File benötigt zusätzliche Informationen, zusätzliche Dateien wie Javadocs müssen generiert und mit der Library mitgeliefert werden und und und. Lange Rede..mit dem Service Provider wird bald unsere erste Library auf Maven zu finden sein.