JavaRush /Blog Jawa /Random-JV /Spring ora medeni, cendhak: Lombok
Павел
tingkat

Spring ora medeni, cendhak: Lombok

Diterbitake ing grup
ISI SIKLUS ARTIKEL Sithik Wikipedia: Lombok (Lombok saka basa Indonesi - "cabe cabai") iku sawijining pulo ing Kapuloan Melayu, ing klompok Kapuloan Sunda Kecil, bagéan saka Indonésia. Lombok minangka jeneng sing diwènèhaké marang perpustakaan populer kanggo basa pamrograman Jawa. Pamilihing jeneng kasebut amarga pulo Lombok ora adoh saka pulo Jawa, lan uga, ketoke, kanthi makna jeneng "cabe lada", amarga perpustakaan nyedhiyakake "bumbu" sing migunani kanggo basa. Sampeyan ora bisa ngomong iku luwih apik, lan apa nggunakake tembung, ayo kang ndeleng ing tumindak: Instal plugin. Tambah dependensi menyang blok <dependencies> file pom:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
Kene kita pindhah: Bukak proyek saka artikel sadurunge , mbukak kelas FruitEntity .
package ru.java.rush.entities;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Entity
@Table(name = "fruit_table")
public class FruitEntity {

    @Id
    @Column(name = "id_fruit")
    @GenericGenerator(name = "generator", strategy = "increment")
    @GeneratedValue(generator = "generator")
    private Integer id;

    @Column(name = "fruit_name")
    private String fruitName;

    @Column(name = "provider_code")
    private Integer providerCode;

//чтобы с классом можно было совершать манипуляции создается
//пустой конструктор, геттеры, сеттеры, конструктор и переопределяется метод toString()

public FruitEntity(){

}


public Integer getId() {
    return id;
}

public FruitEntity setId(Integer id) {
    this.id = id;
    return this;
}

public String getFruitName() {
    return fruitName;
}

public FruitEntity setFruitName(String fruitName) {
    this.fruitName = fruitName;
    return this;
}

public Integer getProviderCode() {
    return providerCode;
}

public FruitEntity setProviderCode(Integer providerCode) {
    this.providerCode = providerCode;
    return this;
}

@Override
public String toString() {
    return "FruitEntity{" +
            "id=" + id +
            ", fruitName='" + fruitName + '\'' +
            ", providerCode=" + providerCode +
            '}';
}
Sithik dawa, ta? Ayo ditambahake anotasi @Data saka Lombok menyang kelas lan deleng carane nyepetake kode kasebut.
package ru.java.rush.entities;

import lombok.Data;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;

@Data//annotation сгенирует при компиляции необходимый code
@Entity
@Table(name = "fruit_table")
public class FruitEntity {

    @Id
    @Column(name = "id_fruit")
    @GenericGenerator(name = "generator", strategy = "increment")
    @GeneratedValue(generator = "generator")
    private Integer id;

    @Column(name = "fruit_name")
    private String fruitName;

    @Column(name = "provider_code")
    private Integer providerCode;

//и все! Весь остальной code будет сгенирован Ломбоком
Jalanake proyek kasebut, priksa manawa kabeh bisa digunakake. Saiki ayo ndeleng kepiye carane nyuntikake dependensi nggunakake Lombok. Ayo mbukak kelas FruitService minangka conto , masang @RequiredArgsConstructor menyang kelas lan mbusak konstruktor saka kelas; kita ora perlu maneh.
package ru.java.rush.services;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import ru.java.rush.entities.FruitEntity;
import ru.java.rush.repositories.FruitRepository;

import java.util.List;


@Service
@RequiredArgsConstructor//annotation от Ломбок
public class FruitService {

    private final FruitRepository fruitRepository;

//здесь когда то был конструктор

    public Optional<FruitEntity> getById(Integer id) {
        return fruitRepository.findById(id);
    }

    public void delById(Integer id) {
        fruitRepository.deleteById(id);
    }

    public Boolean exist(Example<? extends FruitEntity> example) {
        return fruitRepository.exists(example);
    }

    public void save(FruitEntity fruitEntity) {
        fruitRepository.save(fruitEntity);
    }

    public List<FruitEntity> getAll() {
        return fruitRepository.findAll();
    }

    public void saveAll(List<FruitEntity> fruits) {
        fruitRepository.saveAll(fruits);
    }
Saiki gunakake cara sing padha kanggo nyisihake kode sing ora perlu ing kelas InitiateUtils. Priksa manawa kabeh bisa digunakake. Nalika proyek iki maju, kita nggunakake sawetara anotasi Lombok anyar. UPD: Komentar apik saka Denis Ryabchikov "Kanggo entitas, luwih becik ora nggunakake @Data, nanging ngganti karo @Setter lan @Getter, amarga @Data uga ngatasi toString () lan hashCode (), lan masalah bisa uga muncul karo kode hash yen entitas bakal duwe koleksi lan hubungan karo entitas liyane." Ing asas, iku kabeh, kene artikel ing Lombok , deleng katrangan saka anotasi: @Data, @Value, @RequiredArgsConstructor lan @Builder. Ing artikel iki , waca babagan @ Accessors , artikel kasebut ana ing basa Inggris, nanging penerjemah kaca bisa nangani kanthi apik, sampeyan bisa ngerti maknane. Ing artikel sabanjure kita bakal terus ngisi database.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION