Сообщения

Сообщения за август, 2023

JPA Specification, Dynamic queries

1. Simple Specification: Student class: package az.etibarli.jpa_specification.entity ; import jakarta.persistence. Entity ; import jakarta.persistence. GeneratedValue ; import jakarta.persistence.GenerationType ; import jakarta.persistence. Id ; import lombok. Data ; import lombok. RequiredArgsConstructor ; import lombok.experimental. FieldNameConstants ; import java.math.BigDecimal ; import java.time.LocalDate ; @Data @Entity @FieldNameConstants @RequiredArgsConstructor public class Student { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private Long id ; private String name ; private String surname ; private String pinCode ; private Double gpa ; private LocalDate birthdate ; private BigDecimal scholarship ; } Student repository: package az.etibarli.jpa_specification.repository ; import az.etibarli.jpa_specification.entity.Student ; import org.springframework.data.jpa.repository.JpaRepository ; import org.springframework.data.jpa.reposi

Mapstruct

1. How to map different field name: package com.example.demo2.enums ; public enum Brand { MERCEDES , BMW , TOYOTA , FIAT } package com.example.demo2.entity ; import com.example.demo2.enums.Brand ; import jakarta.persistence.* ; import lombok.* ; import org.hibernate.Hibernate ; import java.util.Objects ; @Getter @Setter @ToString @RequiredArgsConstructor @Entity public class Car { @Id @GeneratedValue (strategy = GenerationType. IDENTITY ) private Long id ; @Enumerated (value = EnumType. STRING ) private Brand brand ; private String model ; @ToString.Exclude @OneToOne (mappedBy = "car" , orphanRemoval = true ) private Person person ; @Override public boolean equals (Object o) { if ( this == o) return true; if (o == null || Hibernate. getClass ( this ) != Hibernate. getClass (o)) return false; Car car = (Car) o ; return id != null && Objects. equals ( id , car. id ) ; } @