2014-11-30 2 views
0

에 삽입 또는 업데이트를 수행하지 않는,이 최대 절전 모드 구성이 :없이 data.sql에서 데이터를 데이터베이스 테이블을 작성하고 삽입 다오 클래스 내 현재의 봄 부팅 응용 프로그램에서 스프링 부팅 응용 프로그램

# jdbc.X 
spring.datasource.driverClassName=org.postgresql.Driver 
spring.datasource.url=jdbc:postgresql://localhost:5432/mystore?charSet=LATIN1 
spring.datasource.username=klebermo 
spring.datasource.password=123 

# hibernate.X 
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect 
spring.jpa.dialect=org.hibernate.dialect.PostgreSQLDialect 
spring.jpa.show-sql=false 
spring.jpa.hibernate.ddl-auto=create-drop 

문제가 있지만보기를 통해 엔터티를 삽입하거나 업데이트하려고하면 오류가 발생하지 않고 데이터가 삽입되지 않습니다.

양식에서 제출이 내 컨트롤러에서이 방법으로 처리됩니다 내가 가진 내 서비스 클래스에

@RequestMapping(value = "cadastra", method=RequestMethod.POST) 
    @ResponseBody 
    public void cadastra(@ModelAttribute("object") E object, BindingResult result) { 
    serv.cadastra(object); 
    } 

    @RequestMapping(value = "altera", method=RequestMethod.POST) 
    @ResponseBody 
    public void altera(@ModelAttribute("object") E object, BindingResult result) { 
    serv.altera(object); 
    } 

    @RequestMapping(value = "remove", method=RequestMethod.POST) 
    @ResponseBody 
    public void remove(@ModelAttribute("object") E object, BindingResult result) { 
    serv.remove(object); 
    } 

:

@PreAuthorize("hasPermission(#user, 'cadastra_'+#this.this.name)") 
    @Transactional 
    public void cadastra(E object) { 
    dao.insert(object); 
    } 

    @PreAuthorize("hasPermission(#user, 'altera_'+#this.this.name)") 
    @Transactional 
    public void altera(E object) { 
    dao.update(object); 
    } 

    @PreAuthorize("hasPermission(#user, 'remove_'+#this.this.name)") 
    @Transactional 
    public void remove(E object) { 
    dao.delete(object); 
    } 

내 DAO 클래스 :

@Transactional 
public void insert(E object) { 
    getEntityManager().persist(object); 
} 

@Transactional 
public void update(E object) { 
    getEntityManager().merge(object); 
} 

@Transactional 
public void delete(E object) { 
    getEntityManager().remove(object); 
} 

누구나 여기서 무엇이 잘못 볼 수 있습니까?

public void insert(E object) { 
    EntityManager entityManager = getEntityManager(); 
    entityManager.getTransaction().begin(); 
     entityManager.persist(object); 
    entityManager.getTransaction().commit(); 
} 
+0

"cadastra"당신의 삽입이 옳다 : – user23123412

+0

@ user23123412 예. 라고 불린다. –

답변

0

나는 나의 DAO 클래스의 메서드에이 구조를 사용하여이 문제를 해결하려면 관리? cadastra 메서드가 호출되었는지 확실합니까?
+0

Java Config 클래스에'@ EnableTransactionManagement' 주석이 있습니까? '@ Transactional'은 "begin" "commit"을 추상화해야합니다. –