Spring Boot- Hibernate-REST Integration
Add REST support
Section titled “Add REST support”- Add spring-boot-starter-web dependency to pom.xml. You may skip version tag, if you are using spring-boot-starter-parent as the parent of your pom.xml (reference).
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>package com.example.myproject.web.rest;
import java.util.Map;import java.util.HashMap;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestControllerpublic class VersionController { @RequestMapping("/api/version") public ResponseEntity get() { final Map<String, String> responseParams = new HashMap(); responseParams.put("requestStatus", "OK"); responseParams.put("version", "0.1-SNAPSHOT");
return ResponseEntity.ok().body(responseParams.build()); }}Add Hibernate support
Section titled “Add Hibernate support”- 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><dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId></dependency>or in application.yml
logging: level: org.hibernate.SQL: debugpackage com.example.myproject.domain;
import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import java.io.Serializable;
@Entitypublic class City implements Serializable {
@Id @GeneratedValue public Long id;
@Column(nullable = false) public String name;}insert into city(name) values ('Brisbane');
insert into city(name) values ('Melbourne');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.