Spring Boot - Hibernate 5 простая инициализация приложения за 3 минуты - PullRequest
0 голосов
/ 16 апреля 2019

Я использую Spring boot с Hibernate для подключения к базе данных Oracle. Приложение работает нормально, но когда я запускаю приложение с установленным для обновления флагом Dddl.auto, требуется всего 3 минуты, чтобы только инициализировать диспетчер сущностей. вот мои классы моделей и cfg.xml.

hibernate.cfg.xml

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"classpath://org/hibernate/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>

<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@hhhh.cpckubosallr.ap-south-1.rds.amazonaws.com:1610:gghg</property>
<property name="hibernate.connection.username">DEMO</property>
<property name="hibernate.connection.password">ggggg#78GHTd</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle12cDialect</property>
<property name="show_sql">true</property>
<property name="hibernate.connection.pool_size">5</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="hbm2ddl.auto">update</property>

<mapping class ="student.mappings.model.Student" />
<mapping class ="student.mappings.model.Vehicle" />
<mapping class ="student.mappings.model.Subject" />
</session-factory>
</hibernate-configuration>

Модельные классы:

@Entity
@Table(name="STUDENT", schema="JAVACODE")
public class Student 
{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

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

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="vehicle_id")
private Vehicle vehicle;

@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", vehicle=" + vehicle + ", subject=" + subject + "]";
}

public Vehicle getVehicle() 
{
return vehicle;
}

public void setVehicle(Vehicle vehicle) 
{
this.vehicle = vehicle;
}

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="subject_id")
private List<Subject> subject;

public List<Subject> getSubject() 
{
return subject;
}

public void setSubject(List<Subject> subject) 
{
this.subject = subject;
}

public Student(Long id, String name, Vehicle vehicle, List<Subject> subject) 
{
super();
this.id = id;
this.name = name;
this.vehicle = vehicle;
this.subject = subject;
}

public Long getId() 
{
return id;
}

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

public String getName() 
{
return name;
}

public void setName(String name) 
{
this.name = name;
}

public Student()
{
super();
}

public Student(Long id, String name) 
{
super();
this.id = id;
this.name = name;
}

public Student(Long id, String name, Vehicle vehicle) {
super();
this.id = id;
this.name = name;
this.vehicle = vehicle;
}
}

Application.java:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@SpringBootApplication
@ComponentScan("student.mappings")
@EntityScan("student.mappings")
@PropertySource(value= {"classpath:application.properties"})
public class StudentMappingsTemplateClient 
{
public static void main(String[] args) {
SpringApplication.run(StudentMappingsTemplateClient.class, args);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...