Hibernate не создает таблицу, которая реализует интерфейс Serializable? - PullRequest
0 голосов
/ 28 февраля 2019

У меня небольшой проект с Spring Data, MVC и Web Flow.Также у меня есть 2 сущности, которые я использую в Spring Web Flow, поэтому они ДОЛЖНЫ реализовывать интерфейс Serializable, но я заметил, что Hibernate не создает таблицы, которые его реализуют, для проверки я просто скопировал свою сущность, удалил «реализует Serializable», созданныйновый класс и вставил код сущности туда, новая таблица была создана.Как это устроено ?Как создать таблицу из сущности, реализующей Serializable, возможно ли это вообще?

Код сущностей:

@Table(name = "users")
@Entity
public class User implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idUsers")
private int id;
@Column(name = "login")
@Size(min = 3, max = 15,message = "Неправильний розмір")
@NotEmpty(message = "Не може бути пустим!")
private String login;
@Size(min = 6, max = 21,message = "Неправильний розмір")
@NotEmpty(message = "Не може бути пустим!")
@Column(name = "password")
private String password;
@NotNull(message = "Не може бути пустим!")
@Column(name = "email")
private String email;
@Column(name = "photo")
private String path;
@Column(name = "about")
private String about;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}



@OneToMany(
        fetch = FetchType.EAGER,
        mappedBy = "user",
        cascade = CascadeType.ALL,
        orphanRemoval = true
)
private Set<CommentsToBook> commentsToBooks;

public Set<CommentsToBook> getCommentsToBooks() {
    return commentsToBooks;
}

public void setCommentsToBooks(Set<CommentsToBook> commentsToBooks) {
    this.commentsToBooks = commentsToBooks;
}

public Set<BookOrder> getOrders() {
    return orders;
}

public void setOrders(Set<BookOrder> orders) {
    this.orders = orders;
}

@OneToMany(
        fetch = FetchType.EAGER,
        mappedBy = "user",
        cascade = CascadeType.ALL,
        orphanRemoval = true
)
private Set<BookOrder> orders;


public String getPath() {
    return path;
}

public String getAbout() {
    return about;
}

public void setAbout(String about) {
    this.about = about;
}

public void setPath(String path) {
    this.path = path;
}

public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}
}

И второй:

@Entity
@Table(name = "booook_order")
public class BookOrder implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "bank_card")
private String bankCardId;
@Column(name = "user_name")
private String custName;

public User getUser() {
    return user;
}
@ManyToMany(fetch =  FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "book", joinColumns = {
        @JoinColumn(name = "id")
},inverseJoinColumns = {@JoinColumn(name = "idlibrary")})
private Set<Book> booksList;


@Column(name ="novaposhta-vid")
private String NPVid;

public String getNPVid() {
    return NPVid;
}

public void setNPVid(String NPVid) {
    this.NPVid = NPVid;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

@Column(name = "city")
private String city;

public void setUser(User user) {
    this.user = user;
}

@ManyToOne(cascade = CascadeType.ALL,
        fetch = FetchType.EAGER)
@JoinColumn(name = "idUsers")
private User user;

public String getCustName() {
    return custName;
}

public void setCustName(String custName) {
    this.custName = custName;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public Set<Book> getBooksList() {
    return booksList;
}

public void setBooksList(Set<Book> booksList) {
    this.booksList = booksList;
}

public String getBankCardId() {
    return bankCardId;
}

public void setBankCardId(String bankCardId) {
    this.bankCardId = bankCardId;
}
}
...