我已经和实体两个字段的ID和因此代码的代码......JPA:基于自动递增的ID
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Basic
@Column(name = "code", nullable = false)
private String code;
我想什么做的是,产生该代码基于自动递增的ID(使用Mysql作为数据库)。
有没有一种方法不使用表来生成代码列的键。 即
- ID = 1级的代码是M-000-1
- ID = 2码是M-000-2等。
我已成功地做到这一点的唯一方法是使用下面的脚本。我不太确定的是正确的方法。
getEntityManager().persist(myEntity);
getEntityManager().flush();
myEntity.setCode(myEntity.getCode()+myEntity.getId());
getEntityManager().merge(myEntity);
在此先感谢! Dimitri
这种感觉不是一种很好的方法。当你进行合并时会发生什么?然后你将在DB和持久层中有不同的ID .. – Marthin
由于ID是主键,它会在持续时间内生成一次;之后,它不会改变。你能否提供关于你的合并案例的更多细节? –
我的歉意,我误解了原来的问题(我认为DB中的id是代码)。我现在同意你的解决方案。抱歉占用你的时间。 – Marthin