當我嘗試將用戶物件保存到資料庫時,我得到
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
但是當我使用方法 save 更新現有用戶時,一切正常
我的用戶物體
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);
}
有沒有人有類似的問題?我已經嘗試了一切。
uj5u.com熱心網友回復:
你的遺產很時髦。您有來自沖突繼承策略的注釋:
- 連接表:
@Inheritance(strategy = InheritanceType.JOINED) - 帶鑒別器的單表
@DiscriminatorColumn(name = "role_")
請參閱Hibernate 繼承映射
最重要的是,您試圖從繼承層次結構的根插入實體:User而您應該插入一個子類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/402195.html
下一篇:如何獲取雙向物體
