Я новичок в Spring Boot. Я пытаюсь создать приложение, используя Spring Tool Suite с Mysql Workbench, который использует JPA, MysqlConnectorJ в качестве зависимостей.
У меня есть объект с именем «CredentialType»
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "mactyp")
public class CredentialType {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="credential_type_id")
private Long id;
@Column(name="credential_type_name")
private String name;
@Column(name="date_added")
private LocalDateTime dateAdded;
@Column(name="date_modified")
private Date dateLastModified;
@Column(name="is_active")
private boolean isActive;
...getters() and setters()...
}
Определение таблицы ниже (скрипт, сгенерированный Mysql Workbench)
CREATE TABLE `mactyp` (
`credential_type_id` int(11) NOT NULL AUTO_INCREMENT,
`credential_type_name` varchar(45) NOT NULL,
`date_added` datetime NOT NULL DEFAULT current_timestamp(),
`date_modified` datetime DEFAULT NULL,
`is_active` bit(1) NOT NULL DEFAULT b'1',
PRIMARY KEY (`credential_type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;
date_added
значение по умолчанию для столбца равно current_timestamp
Однако, когда я пытаюсь запустить приведенный ниже тест,
@Test
public void testCreateCredentialType() {
//DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//LocalDateTime now = LocalDateTime.now();
//System.out.println(dtf.format(now));
CredentialType credentialType = new CredentialType();
credentialType.setName("Application");
//credentialType.setDateAdded(now);
credentialTypeRepository.save(credentialType);
}
возвращает
2020-04-26 01:09:23.962 WARN 8352 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1048, SQLState: 23000
2020-04-26 01:09:23.962 ERROR 8352 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Column 'date_added' cannot be null
Я ожидал, что он автоматически вставит дата / время в Mysql. Я не знаю, почему я получаю ошибку.
Спасибо.