【发布时间】:2020-12-08 12:26:35
【问题描述】:
我正在使用带有 springboot 的 postgresql。因此,每当我使用 post 方法在表中添加新细节而不是自动递增 id 时,它都会从 1 变为 3。它采用替代值而不是连续值。我给出了以下属性,然后创建了表: spring.jpa.hibernate.ddl-auto=创建 没有手动创建表。这个错误的原因是什么?这是我的实体类。
@Entity
@Table(name = "NORTHBOUND_SUBSCRIPTION")
public class NBSubscription {
@Id
@GeneratedValue
@Column(name = "nb_id")
private Long nbId;
@Column(name = "DEVICE_FILTER")
private String deviceFilter;
@Column(name = "INTERFACE_FILTER")
private String interfaceFilter;
@ManyToOne
@JoinColumn(name="subscriber_id", referencedColumnName="SUBSCRIBER_ID")
private Subscriber subscriber;
@OneToOne
@JoinColumn(name="sensor_group_id", referencedColumnName="ID")
private SensorGroup sensorGroup;
@Column(name = "EVENT_TYPE")
private String eventType;
@Column(name = "SAMPLING_INTERVAL")
private Integer samplingInterval;
@Column(name = "CREATEAT")
@DateTimeFormat(pattern = "dd-MM-yyyy HH:mm")
private Timestamp createAt;
@Column(name = "MODIFIEDAT")
@DateTimeFormat(pattern = "dd-MM-yyyy HH:mm")
private Timestamp modifiedAt;
@Column(name = "CREATEDBY")
private String createdBy;
@Column(name = "MODIFIEDBY")
private String modifiedBy;
@Column(name = "mark_deletion")
private String markDeletion;
public NBSubscription() {
super();
}
public NBSubscription(Subscriber subscriber, SensorGroup sensorGroup) {
super();
this.subscriber = subscriber;
this.sensorGroup = sensorGroup;
}
public Long getNbId() {
return nbId;
}
public void setNbId(Long nbId) {
this.nbId = nbId;
}
public String getDeviceFilter() {
return deviceFilter;
}
public void setDeviceFilter(String deviceFilter) {
this.deviceFilter = deviceFilter;
}
public String getInterfaceFilter() {
return interfaceFilter;
}
public void setInterfaceFilter(String interfaceFilter) {
this.interfaceFilter = interfaceFilter;
}
@JsonIgnore
public Subscriber getSubscriber() {
return subscriber;
}
public void setSubscriber(Subscriber subscriber) {
this.subscriber = subscriber;
}
public SensorGroup getSensorGroup() {
return sensorGroup;
}
public void setSensorGroup(SensorGroup sensorGroup) {
this.sensorGroup = sensorGroup;
}
public Integer getSamplingInterval() {
return samplingInterval;
}
public void setSamplingInterval(Integer samplingInterval) {
this.samplingInterval = samplingInterval;
}
public String getEventType() {
return eventType;
}
public void setEventType(String eventType) {
this.eventType = eventType;
}
public Timestamp getCreateAt() {
return createAt;
}
public void setCreateAt(Timestamp createAt) {
this.createAt = createAt;
}
public Timestamp getModifiedAt() {
return modifiedAt;
}
public void setModifiedAt(Timestamp modifiedAt) {
this.modifiedAt = modifiedAt;
}
public String getMarkDeletion() {
return markDeletion;
}
public void setMarkDeletion(String markDeletion) {
this.markDeletion = markDeletion;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
【问题讨论】:
-
我们无法提供帮助,因为您没有提供如何配置自动增量的相关代码,例如。通过注释在实体级别上。您查阅过哪些 SO 问题、文档、博客、教程、书籍?
-
所以它正在做自动增量。它只是没有像你想象的那样增加。你把事情称为错误,它工作得很好。
-
我希望 id 像 1,2,3,4,5,.... 一样递增,但它会像 1,3,5,7 一样递增...有什么办法可以我可以连续增加它吗?
-
如果所有实体都使用相同的序列进行自动增量,您的 id 将分布在各个实体中,这是怎么回事?
-
可能是因为在某些表中我得到的序列为 1、3、5、7,而在另一个表中的序列为 2、4、6、8。如果是这个原因,你能告诉我我该怎么办吗?
标签: java postgresql spring-boot