无法将实体保存到数据库

Can't save entity to databse

当我尝试将用户对象保存到数据库时,我得到

Request processing failed; nested exception is
        org.springframework.orm.hibernate5.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException
        for SQL [insert into users (created_at, email, first_name, last_name, password, role_, status) values (?, ?, ?,
        ?, ?, 'User', ?)]; SQL state [S1009]; error code [0]; could not insert:
        [com.hramyko.finalapp.entity.User]; nested exception

但是当我使用方法保存更新现有用户时一切正常

我的用户实体

   package com.hramyko.finalapp.entity;

import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "role_")
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    protected int id;
    protected String email;
    protected String password;
    @Column(name = "first_name")
    protected String firstName;
    @Column(name = "last_name")
    protected String lastName;
    @DateTimeFormat
    @Column(name = "created_at")
    protected Date createdAt;
    @Column(name = "role_")
    @Enumerated(EnumType.STRING)
    protected Role role;
    @Enumerated(EnumType.STRING)
    protected Status status;

}

我的服务方式

@Transactional
    @Override
    public User saveUser(User user) {
        userValidator.validate(user);
        user = userRepository.save(user);
        return user;
    }

我的资料库

package com.hramyko.finalapp.repository;

import com.hramyko.finalapp.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
    User findUserByEmail(String email);
}

有没有人遇到过类似的问题?我已经尝试了所有方法。

你的继承很时髦。您有来自冲突继承策略的注释:

  • 已加入 table:@Inheritance(strategy = InheritanceType.JOINED)
  • 带有鉴别器的单个 table @DiscriminatorColumn(name = "role_")

Hibernate Inheritance Mapping

最重要的是,您正试图从继承层次结构的根部插入实例:User 而您应该插入一个子类。