【发布时间】:2019-11-25 12:10:57
【问题描述】:
我在启动 Spring Boot 应用程序时不断收到此错误
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "ID"; SQL statement:
insert into bookings(bookings_name) values('Kris') [23502-199]
data.sql 有
insert into bookings(bookings_name) values('Kris');
insert into bookings(bookings_name) values('Martin');
而且我相信我有注释,所以@Id 会自动生成
@Entity
class Bookings {
@Id
@GeneratedValue
@Column(name = "id", updatable = false, nullable = false)
private Long id;
private String BookingsName;
public Long getId() {
return id;
}
public String getBookingsName() {
return BookingsName;
}
public Bookings(String BookingsName) {
super();
this.BookingsName = BookingsName;
}
@Override
public String toString() {
return "Bookings [id=" + id + ", BookingsName=" + BookingsName + "]";
}
}
我刚刚开始学习 Spring boot,我在网上找到的每个示例似乎都无法转化为我在这里非常琐碎的示例。
完整的应用程序.java
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Component
class BookingsCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
}
}
interface BookingsRepository extends JpaRepository<Bookings, Long> {
Collection<Bookings> findByBookingsName(String BookingsName);
}
@RestController
class BookingsRestController {
@Autowired
BookingsRepository BookingsRepository;
@RequestMapping("/Bookingss")
Collection<Bookings> Bookingss() {
return this.BookingsRepository.findAll();
}
}
@Entity
class Bookings {
@Id
@GeneratedValue
@Column(name = "id", updatable = false, nullable = false)
private Long id;
private String BookingsName;
public Long getId() {
return id;
}
public String getBookingsName() {
return BookingsName;
}
public Bookings(String BookingsName) {
super();
this.BookingsName = BookingsName;
}
@Override
public String toString() {
return "Bookings [id=" + id + ", BookingsName=" + BookingsName + "]";
}
}
【问题讨论】:
-
表是如何创建的?
-
这里有一个类似的话题stackoverflow.com/a/39094773/7736617
标签: java spring spring-boot spring-data-jpa