2016년 7월 4일 월요일

spring + spring-data-jpa + hybernate + postgresql 설정

1. pom.xml 에 dependency 추가

- spring-data-jpa, hybernate, postgresql 관련 dependency 만 표기하겠음.

      org.springframework.data
      spring-data-jpa
      1.10.2.RELEASE
  
  
      org.hibernate.javax.persistence
      hibernate-jpa-2.0-api
   1.0.1.Final
  
  
      org.hibernate
      hibernate-core
      5.1.0.Final
  
  
      org.hibernate
      hibernate-entitymanager
      5.1.0.Final
  
  
      org.hibernate
      hibernate-ehcache
      5.1.0.Final
  
  
      postgresql
      postgresql
      8.4-702.jdbc4
  


2. context-datasource.xml 파일에 설정 추가

 - 종료태그 부분이 구글 블로그에서 이상하게 번역되는데... <property name=
"dasdf" value="adfs" /> 이렇게 끝나야 하고... 뒤에 덧붙여진거 지워야함;;;;

      
 
   
    
        
        
        
        
    
    
    
    
    
        
        
            
        
    
    
    
        
        
        
            
                
                
                
                
            
        
        
            
                hibernate.cache.use_second_level_cache = true
                hibernate.cache.region.factory_class = org.hibernate.cache.ehcache.EhCacheRegionFactory
                hibernate.cache.use_query_cache = true
                hibernate.generate_statistics = true
            
        
    



3. DAO Interface 설정

 * TestDAO (Interface 만 있어도 CrudRepository 를 이용하면 기본적인 CRUD 가능)

import org.springframework.data.repository.CrudRepository;

import moo.vo.Test;

public interface TestDAO extends CrudRepository{

}

* TestService

package moo.service;

import javax.inject.Inject;

import org.springframework.stereotype.Service;

import moo.dao.TestDAO;
import moo.vo.Test;

@Service
public class TestService {
 
 @Inject
 TestDAO testDAO;
 
 public void saveTest(Test test){
  testDAO.save(test);
 }
 
 public Test getTest(int id){
  
  return testDAO.findOne(id);
 }
 
 public Iterable getTests(){
  return testDAO.findAll();
 }
}

* Test (VO 파일)

package moo.vo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Test {
 @Id
 @GeneratedValue
 private int id;
 
 private String contents;

 public int getId() {
  return id;
 }

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

 public String getContents() {
  return contents;
 }

 public void setContents(String contents) {
  this.contents = contents;
 }
}




끝!