Child pages
  • Futásidejű domain model csere
Skip to end of metadata
Go to start of metadata

Sziasztok!

Az Adatbázis update webalkalmazás részeként kell megoldanom ezt a problémát, de mivel ez jól elkülöníthető a többitől, ezért gondoltam indítok egy új fórumot neki.

A probléma röviden a következő:

  1. Van egy domain modellünk mondjuk Körte entitással.
  2. Felveszünk egy Szilva entitást
  3. A Körte és a Szilva entitások alapján feltöltjük Pálinka táblát
  4. A Körte és Szilva entitásokat kibővítjük új mezőkkel, mint pl. fajta, minőség

Ezek a pontok az alkalmazás életciklusában egymás után következnek és az egyes módosításokat egyenként kell lefuttatni. A migráció történhet részben JPA-n keresztül, illetve mindenképpen szükség van a táblákat módosító ALTER utasításokra az új mezők hozzáadásához. Első körben egyszerűnek tűnik a dolog, a legfrissebb domaint kell használni és minden jó, hiszen nem töröltünk semmit, csak hozzáadtunk. A JPA viszont pl. a 3. lépésben hiányolni fogja a még létre nem hozott oszlopokat - amik a 4. lépésben jönnek létre - és így a migrációnk elfekszik.

A gond az, hogy minden migrálásnál az adott verziónak megfelelő domain-t kellene használni. Én a következőkre gondoltam:

  • Minden verzió külön package-be kerül az updaterben, saját persistence.xml-lel.
    • Marha sok felesleges munka
    • Kód változtatással jár, ami kockázatos
  • Külön updater minden verzióhoz
    • pont az a cél, hogy ezt elkerüljük
  • Saját classloader ami minden verziónál a megfelelő domain model-t tölti be
    • bonyolult
    • összeakadhat a WebLogic classloadereivel

Jelenleg a saját classloader tűnik életképes elképzelésnek, ebben kérném a segítségeteket. Én a portálok classloaderein gondoltam elindulni, mert ott a modulok emlékeim szerint ki/be kapcsolhatóak.

üdv:

pentike

 

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels