← Каталог
Работа с базами данных из Java — 2. JPA (Hibernate) — сущность и `EntityManager`
Фрагмент из «Работа с базами данных из Java»: 2. JPA (Hibernate) — сущность и `EntityManager`.
import jakarta.persistence.*;
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String author;
@Column(unique = true, nullable = false)
private String isbn;
@Column(name = "published_year")
private Integer publishedYear;
private Boolean available = true;
// Обязательен конструктор без параметров для JPA
public Book() {}
public Book(String title, String author, String isbn, Integer publishedYear) {
this.title = title;
this.author = author;
this.isbn = isbn;
this.publishedYear = publishedYear;
}
// Геттеры и сеттеры (или final-поля + конструктор — но тогда нужен @Access)
// ...
// equals/hashCode по id (или по business key, например, isbn)
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Book book)) return false;
return id != null && id.equals(book.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}
import jakarta.persistence.*;
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String author;
@Column(unique = true, nullable = false)
private String isbn;
@Column(name = "published_year")
private Integer publishedYear;
private Boolean available = true;
// Обязательен конструктор без параметров для JPA
public Book() {}
public Book(String title, String author, String isbn, Integer publishedYear) {
this.title = title;
this.author = author;
this.isbn = isbn;
this.publishedYear = publishedYear;
}
// Геттеры и сеттеры (или final-поля + конструктор — но тогда нужен @Access)
// ...
// equals/hashCode по id (или по business key, например, isbn)
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Book book)) return false;
return id != null && id.equals(book.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}