在我的Entity类(称为RpaAudit)中,这就是我定义主键的方式(该主键是使用称为SEQ_AUDIT_ID的序列自动生成的)。
@Entity
@Table(name = "RPA_AUDIT")
public class RpaAudit {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_AUDIT_ID")
@SequenceGenerator(sequenceName = "SEQ_AUDIT_ID", name = "SEQ_AUDIT_ID")
@Column(name="AUDIT_ID", unique = true, nullable = false)
private Integer auditId;
当我将实体保存在saveAndFlush()
类中时,我正在使用JpaRepository的@Service
方法。
这里是这样的:
@Transactional
private RpaAudit dbOperations(Message msg) {
RpaAudit entity = new RpaAudit();
entity.setCreatedBy(msg.getOwner());
entity.setInstanceId(msg.getInstanceId());
entity.setWorkCaseId(msg.getWorkCaseId());
entity.setTaskId(getRandomTaskId());
entity.setTaskName(msg.getTaskName());
entity.setStatus("A");
RpaAudit savedEntity = rpaAuditRepo.saveAndFlush(entity);
return savedEntity;
}
现在,当我执行savedEntity.getAuditId()
时,我会得到一个完全随机的值。
在Db中,AUDIT_ID
列的值是148(遵循顺序),但是当我执行savedEntity.getAuditId()
时,我得到的值是7200(我不知道它是如何产生的,不遵循我在Oracle数据库中创建的顺序。
不确定该值来自何处。
请帮助。