Возможно ли это? Не видели много дискуссий по этому поводу.
Ломбок с гибернацией
Ответ 1
Я никогда не пробовал Lombok с Hibernate, но я не понимаю, почему это не должно работать. Кроме того, посмотрите здесь: http://groups.google.com/group/project-lombok/browse_thread/thread/294bd52d9d8695df/7bc6b0f343831af1?lnk=gst&q=hibernate#7bc6b0f343831af1
Кроме того, примечания к выпуску проекта Lombok упоминают Hibernate явно.
Ответ 2
Конечно! Он отлично работает с моим опытом. Здесь пример объекта:
@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;
}
Ответ 3
Вы можете использовать его также с @Data (и он работает!)
@Entity
@Data
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
}
Ответ 4
Простой пример; Library.java
:
@Data
@NoArgsConstructor // JPA
@Entity
@Table(name = "libraries")
public class Library {
@Id
@GeneratedValue
private Long id;
@OneToMany(cascade = CascadeType.ALL)
@EqualsAndHashCode.Exclude
// This will be included in the json
private List<Book> books = new ArrayList<>();
@JsonIgnore
public void addBook(Book book) {
books.add(book);
book.setLibrary(this);
}
}
И Book.java
:
@Data
@NoArgsConstructor // JPA
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue
private Long id;
@NotBlank
private String title;
@ManyToOne
@JoinColumn(name = "library_id") // Owning side of the relationship
@EqualsAndHashCode.Exclude
@JsonIgnore // Avoid infinite loops
private Book book;
}