2012-06-07 2 views
2

Я хочу получить идентификатор сохраненного объекта. Я использую EJB 3.1.getGeneratedKeys in EJB

Я использовал подготовленную инструкцию для этого, и она отлично работала.

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 

ответ

2

Попробуйте это:

public [id_type] create(T entity) { 
    getEntityManager().persist(entity); 
    getEntityManager().flush(); 
    getEntityManager().refresh(entity); 
    return entity.getId(); 
} 
+0

Он работал отлично. Спасибо :) –

+0

добро пожаловать! – tibtof