Добрый вечер, только начинаю работу с hibernate, до этого работал с spring data.
Задача: Нужно создать таблицу Note используя hibernate JPA mapping
В обычном hibernate проекте можно просто написать
public class Main {
public static void main(String[] args) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
}
}
И тогда в бд появится новая таблица.
Немного туплю, как это сделать в Spring проекте где нету main`a, чтобы также при запуске проекта, создавалась таблица в бд?
Сущность для которой нужно создать таблицу.
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "notes")
public class Note {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String text;
private Date date;
public Note() {
}
public Note(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
hibernateUtil
public class HibernateUtil {
private static SessionFactory sessionFactory = null;
static {
Configuration cfg = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties());
sessionFactory = cfg.buildSessionFactory(builder.build());
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name = "connection.driver_class">org.postgresql.Driver</property>
<property name = "connection.url">jdbc:postgresql://localhost:5432/note</property>
<property name = "connection.username">postgres</property>
<property name = "connection.password">admin</property>
<property name = "show_sql">true</property>
<property name = "hibernate.hbm2ddl.auto">update</property>
<mapping class="com.notes.entity.Note" />
</session-factory>
</hibernate-configuration>