Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:ffit:3-jahr:java:learningunits:lu10:b [2025/11/10 00:57] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu10:b [2025/11/10 01:28] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 47: | Zeile 47: | ||
| ==== Lazy Loading ==== | ==== Lazy Loading ==== | ||
| - | Beim " | + | Beim " |
| <code java> | <code java> | ||
| Zeile 54: | Zeile 54: | ||
| String passwordHash = account.getProject().getPasswordHash(); | String passwordHash = account.getProject().getPasswordHash(); | ||
| </ | </ | ||
| + | |||
| + | ==== References ==== | ||
| + | |||
| + | Um ein Objekt mittels einem Objekt zu suchen oder zu löschen, muss nicht das zwingend das ganze Objekte erstellt werden, sondern lediglich die Werte der Fremdschlüssel. | ||
| + | |||
| + | ^ Operation ^ Via Join ^ Via Reference-Object ^ | ||
| + | | find | < | ||
| + | <code java> | ||
| + | List< | ||
| + | </ | ||
| + | </ | ||
| + | <code java> | ||
| + | Project projectRef = entityManager.getReference(Project.class, | ||
| + | List< | ||
| + | </ | ||
| + | </ | ||
| + | | delete | < | ||
| + | <code java> | ||
| + | accountRepository.deleteByAccountNumberAndProject_ProjectName(accountNumber, | ||
| + | </ | ||
| + | </ | ||
| + | <code java> | ||
| + | Project projectRef = entityManager.getReference(Project.class, | ||
| + | accountRepository.deleteByAccountNumberAndProject(accountNumber, | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Sofern man nicht eh schon ein Project-Object beziehungsweise ein Reference-Objekt hat, ist die " | ||
| + | |||
| + | Die Reference-Objekte sind insbesondere praktisch, wenn neue Entitäten erstellt werden. Dies wird in folgendem Beispiel gezeigt. | ||
| + | |||
| + | <code java> | ||
| + | Project projectRef = entityManager.getReference(Project.class, | ||
| + | |||
| + | Account account = accountRepository | ||
| + | .findByAccountNumberAndProject(accountNumber, | ||
| + | .orElse(new Account()); | ||
| + | account.setAccountNumber(accountNumber); | ||
| + | account.setName(accountName); | ||
| + | account.setProject(projectRef); | ||
| + | accountRepository.save(account); | ||
| + | </ | ||
| + | |||