Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:java:learningunits:lu10:b [2025/11/10 01:10] apeterde:modul:ffit:3-jahr:java:learningunits:lu10:b [2025/11/10 01:28] (aktuell) apeter
Zeile 29: Zeile 29:
 } }
 </code> </code>
-</WRAP> | | <WRAP>+</WRAP> | 
 +| <WRAP>
 <code java> <code java>
 String projectName = projectRepository.findById(account.getProjectId()).getProjectName(); String projectName = projectRepository.findById(account.getProjectId()).getProjectName();
Zeile 58: Zeile 59:
 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. 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.
  
-List<Account> accounts = accountRepository.findByProject_ProjectName(projectName) +^ Operation ^ Via Join ^ Via Reference-Object ^ 
- +| find | <WRAP> 
 +<code java> 
 +List<Account> accounts = accountRepository.findByProject_ProjectName(projectName); 
 +</code>  
 +</WRAP> | <WRAP> 
 +<code java> 
 +Project projectRef = entityManager.getReference(Project.class, projectName); 
 +List<Account> accounts = accountRepository.findByProject(project); 
 +</code> 
 +</WRAP>
 +| delete | <WRAP> 
 +<code java> 
 +accountRepository.deleteByAccountNumberAndProject_ProjectName(accountNumber, projectName); 
 +</code>  
 +</WRAP> | <WRAP> 
 +<code java> 
 +Project projectRef = entityManager.getReference(Project.class, projectName);
 accountRepository.deleteByAccountNumberAndProject(accountNumber, projectRef); accountRepository.deleteByAccountNumberAndProject(accountNumber, projectRef);
 +</code>
 +</WRAP> |
  
 +Sofern man nicht eh schon ein Project-Object beziehungsweise ein Reference-Objekt hat, ist die "Project_ProjectName"-Variante empfohlen. Hat man aber bereits ein solches Objekt, kann man dieses direkt mitgeben.
  
-oder gar ein neues Objekt zu speichern+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, projectName);
  
-Project project projectRepository.findById(projectName)+Account account accountRepository 
 +        .findByAccountNumberAndProject(accountNumber, projectRef) // Reference-Objekt kann benutzt werden, weil es eh bereits existiert. 
 +        .orElse(new Account()); 
 +account.setAccountNumber(accountNumber); 
 +account.setName(accountName); 
 +account.setProject(projectRef); // Hier kann ein Reference-Objekt mitgegeben werden, ohne dass das Project-Objekt aus der DB geladen werden muss. 
 +accountRepository.save(account)
 +</code>
  
  
  
  
  • de/modul/ffit/3-jahr/java/learningunits/lu10/b.1762733412.txt.gz
  • Zuletzt geändert: 2025/11/10 01:10
  • von apeter