Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

JPA en plain SQL op zelfde tabel?

Pagina: 1
Acties:

Verwijderd

Topicstarter
In een applicatie die we aan het bouwen zijn is er sprake van 1 tabel waar een JPA entity op gemapped moet worden (waar een andere, reeds bestaande JPA entity dan weer een reference naar krijgt).

Het probleem is echter dat deze tabel gevuld wordt door plain SQL code. Nu kan ik me herinneren ooit ergens gelezen te hebben dat het niet helemaal goed gaat als zowel plain SQL (buiten JPA om) en JPA zelf een tabel 'beheren'. Ik kan de precieze uitleg en de consequenties ervan echter niet meer vinden. Sterker nog, ik begin bijna te twijfelen of ik dit wel ooit zo gelezen heb en niet in de war ben met iets anders.

Weet iemand hier meer over?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:40

Janoz

Moderator Devschuur®

!litemod

Op zich hoeft het geen probleem te zijn. Je moet alleen opletten wanneer je het in de zelfde code door elkaar gaat gebruiken. Je moet daarbij goed rekening houden met je transacties.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Hmmm, ok. Een ander punt is waarschijnlijk ook je entity cache (1ste level). JPA (iniedergeval via Hibernate) blijkt niet automatisch op de hoogte gebracht te worden van veranderingen in de onderliggende tabel. Eigenlijk ook logisch, want wie zou dat seintje door moeten geven.

Als je dus een entity opvraagt by id, dan krijg je telkens de versie terug met oude data.

Na even verder zoeken blijkt dat het probleem ook iets verder reikt dan alleen de huidige transactie. Het is eigenlijk de persistent context, die is wel vaak (maar niet altijd) gebonden aan 1 transaction.