2

永続化されたオブジェクトの ID を取得したい。EJB 3.1 を使用しています。

これを行うために準備済みステートメントを使用していましたが、完全に機能しました。

ResultSet generatedKeys = statement.getGeneratedKeys();
if (generatedKeys.next()) {
    myId = generatedKeys.getLong(1);
}

私は検索してきましたが、EJB でこれを機能させる方法について何も述べていませんでした。オブジェクトをデータベースに永続化するために使用される私の方法は次のとおりです。

public void create(T entity) {
    getEntityManager().persist(entity);
    //Something to return entity's id???
}

私が使用している永続化プロバイダーは次のとおりです。

org.eclipse.persistence.jpa.PersistenceProvider
4

1 に答える 1

2

これを試して:

public [id_type] create(T entity) {
    getEntityManager().persist(entity);
    getEntityManager().flush();
    getEntityManager().refresh(entity);
    return entity.getId();
}
于 2012-06-07T10:31:19.457 に答える