【发布时间】:2012-09-26 09:47:00
【问题描述】:
我有一个新对象。我想在保存之前知道 id 。可能吗?或者还有另一种方法?我使用 jpa 作为 orm 和 oracle 作为数据库。
@Id
@Basic(optional = false)
@Column(name = "ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "woTypeSeq")
private Long id;
我的实体中有一个代码字段。如果用户没有为code 字段输入值,我想将代码设置为实体的ID。如果我持久化实体,当然我可以获取id并将代码值设置为id,但这是额外的查询数据库。
我想做这样的事情
if(entity.getCode()==null) {
entity.setCode(entity.getId);
jpaDao.saveOrUpdate(entity);
}
【问题讨论】:
-
您可以避免使用@GeneratedValue,自己使用生成器获取值并将其“手动”设置为实体
-
我不想手动将其设置为实体。如果我从 oracle 获取 id 的下一个值并将其设置为新实体的 id,是否合理?