java / intermediate
Snippet
Abrufen von Teildaten mittels Interface-Projektionen
Spring Data JPA ermöglicht es, Interfaces zu definieren, um nur eine Teilmenge der Felder einer Datenbankentität abzurufen. Dies ist effizienter als das Laden der vollständigen Entität, wenn nur wenige Felder benötigt werden, besonders für UI-Listen.
snippet.java
1
2
3
4
5
6
7
8
9
public interface UserSummary {String getUsername();@Value("#{target.firstName + ' ' + target.lastName}")String getFullName();}public interface UserRepository extends JpaRepository<User, Long> {List<UserSummary> findAllByActiveTrue();}
spring
Erklärung
1
public interface UserSummary
Das Projektions-Interface definiert die Getter-Methoden für die Felder, die abgerufen werden sollen.
2
@Value("#{...}")
Verwendet SpEL (Spring Expression Language), um eine virtuelle Eigenschaft aus Entitätsfeldern zu berechnen.
3
List<UserSummary>
Weist Spring Data an, das Ergebnis in das Interface zu proxien, anstatt Entitätsobjekte zurückzugeben.