2011-02-01 3 views

답변

22

확실! 그것은 내 경험으로 훌륭하게 작동합니다. 여기에 예제 엔티티는 다음과 같습니다

@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

하여, 각 필드에 게터와 세터를 넣을 필요가 없습니다 . 또한 EqualsAndHashcode of of = { "id"}를 지정할 수도 있습니다. –

+11

@RoelSpilker 예. OneToMany 및 ManyToOne이있는 엔티티는주의해야합니다. 왜냐하면 롬복의 ToString이 무한 루프를 만들 것이기 ​​때문입니다. – qwertzguy

+1

그건 내가 찾고 있던 하나, 나는 이러한 엔티티 중 하나에 대한 무한 루프가 있었고 stackoverflowerror가 발생했습니다. 팁 고마워! –

8

당신은 @Data로도 사용할 수 있습니다 (그리고 그것은 작동!) 당신이 데이터를 사용하는 경우

@Entity 
@Data 
public class Customer { 

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

} 
+3

@Data 주석 및 최대 절전 모드에 문제가있었습니다. 첫 번째 problme은 hashCode() 생성 된 메소드와 함께, 최대 절전 모드는 그냥 entitry를 만들지 못했습니다. 다른 모델의 경우 toString() 메서드를 사용하여 목록 또는 세트를 cancan합니다. 그냥 #Setter # 지금까지 그렇게 잘 했어. #ToString 모델이 일반 데이터 필드 만 연결하는 경우에만 – ekitru

관련 문제