spring data JPA null主键错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring data JPA null主键错误相关的知识,希望对你有一定的参考价值。
这是我的数据实体
@Entity
@Table(name = "hotel")
@Data
public class Hotel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "hotel_id", updatable = false)
@JsonIgnore
private int id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "room_price")
private RoomPrice roomPrice;
}
@Entity
@Table(name = "room_price")
@Data
public class RoomPrice {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "room_price_id", updatable = false)
@JsonIgnore
private int roomPriceId;
@Column(name = "price")
@Min(0)
private double price;
@Column(name = "currency_type")
@NotEmpty
@Size(min = 3, max = 3)
private String currency;
}
SQL:
CREATE TABLE IF NOT EXISTS room_price (
room_price_id INTEGER PRIMARY KEY,
price SMALLINT,
currency_type VARCHAR(3) NOT NULL
);
ALTER TABLE hotel
ADD
COLUMN room_price INTEGER REFERENCES room_price (room_price_id);
hotel.setRoomPrice(price); hotelDao.save(hotel);
throw room_price_id null value error message。使用cascade.all
,在存储酒店实体时,它还应该存储价格实体。我做错了什么?谢谢。
答案
由于你正在使用GenerationType.IDENTITY
策略,你应该使用serial
或bigserial
类型为room_price_id
让Postgres自动生成你的主键。
以上是关于spring data JPA null主键错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使每个表中的主键值应从数字一(1)开始 - PostgreSQL,Spring data jpa
Spring Data JPA - 带有“@Param Date”的自定义@Query 不起作用
有没有办法在输出中获得可重复的主键并在 spring data jpa 中保持分页?