私はJPA(EclipseLink)とSpringを使用しています。私は、自動生成されたIDを持つ単純な実体持っていると言う:私のDAOクラスでJPA - persist()後に自動生成されたIDを返す
@Entity
public class ABC implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
// ...
}
を、私はこのエンティティにpersist()
を呼び出すinsertメソッドを持っています。私はメソッドが新しいエンティティのために生成されたIDを返すようにしたいが、私がそれをテストすると0
を代わりに返す。 IDが唯一のフラッシュ時に生成されることが保証されて
public class ABCService {
@Resource(name="ABCDao")
ABCDao abcDao;
public int addNewABC(ABC abc) {
return abcDao.insertABC(abc);
}
}
同様のものについてはJPAに伝えますhttp://stackoverflow.com/q/3328813/366964 –
お返事ありがとうございます。そして、(JPAではなく)難解な解決策として、私たちはunixタイムスタンプのような別の一意のIDを使うことができます。 – sura2k
JPAは@GeneratedValue @Idをいつ設定するのですか?(http://stackoverflow.com/questions/9087848/when-does-the-jpa-set-a-generatedvalue-id) – Raedwald