Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dao类don';t在spring引导应用程序上执行插入或更新_Spring_Hibernate_Spring Boot_Spring Orm - Fatal编程技术网

Dao类don';t在spring引导应用程序上执行插入或更新

Dao类don';t在spring引导应用程序上执行插入或更新,spring,hibernate,spring-boot,spring-orm,Spring,Hibernate,Spring Boot,Spring Orm,在我当前的spring boot应用程序中,我有以下hibernate配置: # 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

在我当前的spring boot应用程序中,我有以下hibernate配置:

# 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
它创建数据库表并从
data.sql
插入数据,没有问题,但是当我尝试通过视图插入或更新实体时,尽管没有触发错误,但不会插入任何数据

表单中的提交由我的控制器通过以下方法处理:

  @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);
  }
在我的刀课上:

@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();
}

任何人都可以看到这里出了什么问题?

我通过对我的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();
}

“地籍”是你插入的对吗?您确定调用了地籍方法吗?@user23123412是。在Java配置类中是否有注释
@EnableTransactionManagement
@Transactional
应该为您抽象“开始”“提交”。