Suchen Sie anhand eines Beispiels in Spring Data JPA

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Suchen Sie anhand eines Beispiels in Spring Data JPA

by Guest » 22 Dec 2024, 19:42

Angenommen, ich habe eine Entität mit vielen Feldern. Anstatt sie separat zu übergeben und die Parameterliste aufzublähen, möchte ich stattdessen eine ganze Entität übergeben.
Wie erreiche ich das in Spring Data JPA?
Für den Zweck der Frage mache ich die Entität winzig, aber Sie können sie sich viel größer vorstellen.
package com.example.socks_api.dao;

import com.example.socks_api.data.entity.Socks;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.RepositoryDefinition;
import org.springframework.data.repository.query.Param;

import java.util.UUID;

@RepositoryDefinition(idClass = UUID.class, domainClass = Socks.class)
public interface SocksDao {

// this query will make the app fail at start-up
@Query("""
SELECT Socks s
WHERE s.color = :socks.color
AND s.cottonContent = :socks.cottonContent
""")
Socks findBy(@Param("socks") Socks socks);
}

package com.example.socks_api.data.entity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;

import java.math.BigInteger;
import java.util.UUID;

@Entity
@Getter
@Setter
public class Socks {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
private String color;
@Column(name = "cotton_content")
private Integer cottonContent;
private BigInteger quantity;
}

Java 17, Spring Boot 3

Top