2011-02-01 7 views

risposta

22

Sicuro! Funziona alla grande dalla mia esperienza. Ecco un esempio un'entità:

@Entity 
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
public class PingerEntity { 
    // ID 
    @Id 
    @Getter 
    @Setter 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 


    // USER 
    @Getter 
    @Setter 
    @ManyToOne(fetch = FetchType.LAZY, optional = false) 
    private UserEntity user; 


    // URL 
    @Getter 
    @Setter 
    @Basic(optional = false) 
    private String url; 


    /** 
    * The number of seconds between checks 
    */ 
    @Getter 
    @Setter 
    @Basic(optional = false) 
    private int frequency; 


    @Getter 
    @Setter 
    @Basic(optional = false) 
    @Enumerated(EnumType.STRING) 
    public MonitorType monitorType; 
} 
+10

Se si utilizzano dati, non c'è bisogno di mettere Getter e Setter su ogni campo . Potresti anche specificare EqualsAndHashcode (of = {"id"}) –

+11

@RoelSpilker Sì, ma fai attenzione alle entità che hanno OneToMany e ManyToOne, perché il ToString di lombok creerà un ciclo infinito. – qwertzguy

+1

Questo è quello che stavo cercando, ho avuto un ciclo infinito per una di queste entità e ha causato uno stackoverflowerror. Grazie per il consiglio! –

8

Si può usare anche con @Data (e funziona!)

@Entity 
@Data 
public class Customer { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private long id; 
    private String firstName; 
    private String lastName; 

} 
+3

Ho avuto problemi con l'annotazione @Data e l'ibernazione. Il primo problema era con il metodo generato da hashCode(), l'ibernazione non riusciva a creare entitry. Altro con il metodo toString() nel caso in cui il modello possa contenere liste o insiemi. Just #Setter #Getter finora così buono. #ToString solo se il modello contiene solo campi di dati semplici – ekitru