java / intermediate
Snippet
Schnittstellen-basierte Projektionen in Spring Data JPA
Projektionen ermöglichen es, nur bestimmte Felder aus der Datenbank abzurufen, anstatt ganze Entitäten zu laden. Dies reduziert den Speicherverbrauch und verbessert die Datenbankleistung, indem nur benötigte Spalten selektiert werden.
snippet.java
1
2
3
4
5
6
7
8
9
public interface UserSummary {String getName();@Value("#{target.firstName + ' ' + target.lastName}")String getFullName();}public interface UserRepository extends JpaRepository<User, Long> {List<UserSummary> findByLastName(String lastName);}
spring
Erklärung
1
UserSummary
Ein Interface, das Getter-Methoden für die abzurufenden Felder definiert.
2
@Value
Verwendet SpEL (Spring Expression Language), um einen Wert aus mehreren Entitätsfeldern zu berechnen.
3
List<UserSummary>
Das Repository gibt eine Liste von Projektionsinstanzen anstelle von Entitätsobjekten zurück.