postgresql - 使用 JPA + PostgreSql 在非 id(pk) 列中自动增量设置
问题描述
感谢阅读这个问题。我正在使用 Spring Data JPA + PostgreSql。
我引用了 url > Hibernate JPA Sequence (non-Id)在非 id(pk) 列中设置自动增量属性,但它不起作用(插入空值)。
这是@Entity的一部分
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
String id;
@Column(name = "agent_no", columnDefinition = "serial", insertable = false, updatable = false)
@Generated(GenerationTime.INSERT)
private Integer agentNo;
这是@Service的一部分
/* POST */
@Transactional
public AgentDto create(AgentUpsertDto newItem) throws Exception {
Optional.ofNullable(newItem).orElseThrow(() -> new DataException("No Data"));
UEMspAgent item = newItem.createBy(modelMapper);
item = agentRepository.save(item);
return modelMapper.map(item, AgentDto.class);
}
这是 AgentUpsertDto 的一部分
private String id;
private Integer agentNo;
private String displayName;
private String ipAddress;
@Override
public Agent createBy(ModelMapper mapper) throws Exception {
// TODO Auto-generated method stub
Agent entity = mapper.map(this, Agent.class);
/* */
if (StringUtils.isAllEmpty(entity.getDisplayName())) {
throw new DataException("No Data");
}
if (StringUtils.isAllEmpty(entity.getIpAddress())) {
throw new DataException("No Data");
}
return entity;
}
我希望列“agentNo”具有自动增量属性,但是当插入的数据为空时(其他都可以)。你能帮我解决这个问题吗?