spring-boot – Spring Boot- Hibernate-REST Integration – Add Hibernate support

  1. Add spring-boot-starter-data-jpa dependency to pom.xml. You may skip version tag, if you are using spring-boot-starter-parent as the parent of your pom.xml. The dependency below brings Hibernate and everything related to JPA to your project (reference).
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
  1. Add database driver to pom.xml. This one below is for H2 database (reference).

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    
  2. Enable debug logging for Hibernate in application.properties

    logging.level.org.hibernate.SQL = debug

or in application.yml

logging:
  level:
    org.hibernate.SQL: debug
  1. Add entity class to desired package under ${project.home}/src/main/java/, for example under com.example.myproject.domain (reference):

    package com.example.myproject.domain;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import java.io.Serializable;
    
    @Entity
    public class City implements Serializable {
    
        @Id
        @GeneratedValue
        public Long id;
    
        @Column(nullable = false)
        public String name;
    }
    
  2. Add import.sql to ${project.home}/src/main/resources/. Put INSERT statements into the file. This file will be used for database schema population on each start of the app (reference):

    insert into city(name) values ('Brisbane');
    
    insert into city(name) values ('Melbourne');
    
  3. Add Repository class to desired package under ${project.home}/src/main/java/, for example under com.example.myproject.service (reference):

    package com.example.myproject.service;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import java.io.Serializable;
    
    import com.example.myproject.domain.City;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.repository.Repository;
    
    interface CityRepository extends Repository<City, Long> {
    
        Page<City> findAll(Pageable pageable);
    
        Page<City> findByName(String name);
    }
    

Basically that’s it! At this point you already can access the database using the methods of com.example.myproject.service.CityRepository.

if you want to reproduce, please indicate the source:
spring-boot – Spring Boot- Hibernate-REST Integration – Add Hibernate support - CodeDay