【问题标题】:How to solve storing data with Spring Boot & Hibernate?如何解决使用 Spring Boot & Hibernate 存储数据?
【发布时间】:2020-08-01 20:10:09
【问题描述】:

当我尝试在我的数据库中存储数据时出现以下错误。

这是实体类:

@Entity
@Table(name="utilisateur")
public class Utilisateur {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id_utilisateur;

    @NotEmpty @Email
    private String email;

    @NotEmpty  @JsonIgnore
    private String password;

    private String role;

    ...
}

我当然放了 getter 和 setter。

这是控制器:

public class UserController {
    @Autowired
    UserRepository userRepository;
    
    @PostMapping(value = "/add")
    public Utilisateur addUser(@Valid @RequestBody UserRequest userRequest) 
            throws RequestValidationException {

        Utilisateur utilisateur=new Utilisateur();
        
        utilisateur.setEmail(userRequest.getEmail());
        utilisateur.setPassword(userRequest.getPassword());
        utilisateur.setRole(userRequest.getRole());
            
        Utilisateur userAdded =  userRepository.save(utilisateur);
       
        return userAdded;
    }
}
    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;

存储库

     @Repository
      public interface UserRepository extends CrudRepository<Utilisateur, 
      Integer> {

      }

当我尝试存储数据时,我收到以下 Hibernate 错误:error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: error performing isolated work

【问题讨论】:

  • 设置如下:@GeneratedValue(strategy=GenerationType.AUTO)GenerationType.IDENTITY,来源:stackoverflow.com/a/22473167/13211030
  • 你能出示你的UserRepository吗?
  • @Fullslack.dev 我试过但现在错误是SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException
  • 你用的是什么数据库?

标签: spring-boot hibernate


【解决方案1】:

使用您的类,以下代码块可以正常工作。

Utilisateur utilisateur=new Utilisateur();
        
utilisateur.setEmail("foo@bar.com");
utilisateur.setPassword("foobar");
            
Utilisateur userAdded =  userRepository.save(utilisateur);

既然您提到了 ConstraintViolationException [null],那么您很可能在使用 userRequest 对象时遇到了问题。您应该在控制台日志中查找违反约束的列表。您可以查看违反了哪些约束 (interpolatedMessage) 以及它们与哪些变量相关 (propertyPath)。

List of constraint violations:[
    ConstraintViolationImpl{interpolatedMessage='must not be empty', propertyPath=email, rootBeanClass=class com.ecommerce.Utilisateur, messageTemplate='{javax.validation.constraints.NotEmpty.message}'}
    ConstraintViolationImpl{interpolatedMessage='must not be empty', propertyPath=password, rootBeanClass=class com.ecommerce.Utilisateur, messageTemplate='{javax.validation.constraints.NotEmpty.message}'}
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-25
    • 2020-04-29
    • 2021-08-15
    • 2020-08-05
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 2022-01-28
    相关资源
    最近更新 更多