Opdracht: Persist

Hier bouwen wij verder op bank-app van een vorige opdracht.

  1. Maak een object aan van jouw entiteit-klasse BankAccount
  2. Geef initiële waarden voor alle eigenschappen (behalve id want die zou je normaal gezien geannoteerd hebben om automatisch een waarde te genereren)
  3. Merk op dat dit object nu een doodsimpele POJO is, en dat het detached is. Daarmee wordt bedoeld dat het niet beheerd wordt door een EntityManager, en dat het niet in de Persistence Context zit.
  4. Laat jouw EntityManager ’em’ het nu beheren en roep persist() op
  5. Voer jouw applicatie uit. Controleer jouw databank: staan de gegevens op de databank?
    Normaal gezien niet. Merk hier op dat, ja, jouw EntityManager beheert jouw object nu, en het staat in de Persistence Context, maar deze nieuwe record staat enkel op de Persistence Context, wat je kan zien als een soort van cache, tussenlaag tussen EntityManager en de daadwerkelijke databank. Om deze veranderingen te laten verschijnen op de daadwerkelijke databank moeten wij nog een commit doen.
  6. Start een transactie via jouw EntityManager één regel voor die van persist
  7. Beëindig de transactie met een commit
  8. Voer jouw applicatie uit. Controleer jouw databank: staan de gegevens nu wel op de databank?
  9. Pas een refactor toe. Merk je logica die je waarschijnlijk apart in een methode kan plaatsen om herbruikbaarheid en leesbaarheid naar omhoog te doen?