1
db 처리를 위해 최대 절전 모드 및 스프링 데이터를 사용하고 있습니다. 오류가 발생했습니다. 나는 db에서 기본값을 설정하려고 시도했지만 아무것도이 문제를 해결하는 것 같습니다. 내가 뭘 잘못했을 :최대 절전 모드 오류 필드에 기본값이 없습니다.
오류 :
Caused by: java.sql.SQLException: Field 'USERNAME' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2145)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2081)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2066)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)
테이블 쿼리
CREATE TABLE `User` (
`USERNAME` varchar(60) NOT NULL,
`PASSWORD` varchar(45) NOT NULL,
`IS_ACTIVE` char(1) NOT NULL,
`NAME` varchar(100) NOT NULL,
`EMAIL` varchar(100) NOT NULL,
`PHONE` varchar(45) NOT NULL,
PRIMARY KEY (`USERNAME`)
사용자 POJO :
@Entity
@Table(name= "User")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "USERNAME")
private String username;
@Column(name = "PASSWORD", nullable = false)
private String password;
@Column(name = "IS_ACTIVE", nullable = false)
private boolean isActive;
@Column(name = "NAME", nullable = false)
private String name;
@Column(name = "email", nullable = false)
private String email;
@Column(name = "phone", nullable = false)
private String phone;
@OneToOne(mappedBy = "user", cascade=CascadeType.ALL)
private UserRole userRole;
}
제거 세터와 가독성에 대한 게터.
사용자 개체를 만들고 데이터베이스에 유지하는 Java 코드를 제공 할 수 있습니까? – mateuszlo