我正在尝试开发一个简单的 Spring Boot 应用程序来管理优惠券、创建和读取优惠券。应用程序启动时运行没有问题。
但是,在通过 Postman 发送 POST 请求时,我在应用程序中遇到以下错误:
java.sql.SQLSyntaxErrorException: Table 'demo.coupon_seq' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) ~[mysql-connector-j-8.3.0.jar:8.3.0]
错误地说“demo.coupon_seq”不存在,但我创建了“coupon”类,我不知道为什么它正在寻找 coupon_seq ?
任何人都可以调查这个问题并提供解决方案吗
模型/实体类:
@Entity
@Table(name = "coupon")
public class Coupon {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
private int id;
private String couponname;
private int discount;
@Column(name = "expdata")
private String expdate;
}
控制器类:
@RestController
@RequestMapping("/coupon")
public class CouponController {
@Autowired
CouponRepository repository;
@PostMapping(value = "/createCoupon")
public Coupon addCoupon(Coupon coupon) {
return repository.save(coupon);
}
}
application.properties 文件:
spring.application.name=springcloud
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=Passw0rd123
spring.jpa.show-sql=true
SQL 查询
create database demo;
use demo;
create table coupon (
id int auto_increment,
couponname varchar(20),
discount int,
expdata varchar(10),
primary key(id)
);
drop table coupon;
select *from coupon;
邮递员:
javatag-springhibernatespring-bootspring-data-jpa
................................................ ...................................................... ...................................................... ......................
尝试使用
@GeneratedValue (strategy = GenerationType.IDENTITY)
而不是
@GeneratedValue (strategy = GenerationType.AUTO)