我正在开发Spring Boot (2.1.7.RELEASE) +Data Jpa + Postgres示例。在此示例中,我明确传递EMP_ID
value= 100
,接下来我允许 data-jpa 自动获取下一个 Id,即101
. 我不确定为什么它不以这种方式工作?
雇员.java
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Entity
public class Employee extends BaseEntity{
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "EMP_ID", unique = true, nullable = false)
private Integer empId;
@Column(name = "EMP_NAME", unique = true, nullable = false)
private String empName;
@Column(name = "EMP_EMAIL", unique = true, nullable = false)
private String empEmail;
@Builder(builderMethodName="eBuilder")
public Employee(Integer empId, String empName, String empEmail,
Instant createdDate, Instant lastUpdateDate,String createUser, String lastUpdateUser) {
super(createdDate, lastUpdateDate, createUser, lastUpdateUser);
this.empId = empId;
this.empName = empName;
this.empEmail = empEmail;
}
}
BaseEntity.java
@Data
@MappedSuperclass
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {
@CreatedDate
@Column(name = "createdDate", nullable = false, updatable = false)
private Instant createdDate;
@Column(name = "lastUpdateDate", nullable = false)
@LastModifiedDate
private Instant lastUpdateDate;
@Column(name = "createUser", nullable = false, length = 50)
private String createUser;
@Column(name = "lastUpdateUser", length = 50)
private String lastUpdateUser;
}
主应用程序.java
@SpringBootApplication
@EnableJpaAuditing
public class MyExampleApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(MyExampleApplication.class, args);
}
@Autowired
private EmployeeRepository employeeRepository;
@Override
public void run(String... args) throws Exception {
Employee e = Employee.eBuilder().empId(100).empName("Shrutika")
.empEmail("shrutika@hotmail.com")
.createUser("Shrutika")
.lastUpdateUser("Shrutika")
.build();
employeeRepository.save(e);
Employee e1 = Employee.eBuilder().empName("Shantaram")
.empEmail("shantaram@hotmail.com")
.createUser("Shantaram")
.lastUpdateUser("Shantaram")
.build();
employeeRepository.save(e1);
}
}
即使我在下面使用,仍然效果不佳
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "emp_generator")
@SequenceGenerator(name="emp_generator", sequenceName = "emp_seq", allocationSize=1)
@Column(name = "EMP_ID", unique = true, nullable = false)
private Integer empId;
Spring JIRA:https ://jira.spring.io/browse/DATAJPA-1588