Я використовую JPA (EclipseLink) та Spring. Скажіть, у мене є проста особа з автоматично створеним ідентифікатором:
@Entity
public class ABC implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
// ...
}
У своєму класі DAO у мене є метод вставки, який викликає persist()
цю сутність. Я хочу, щоб метод повернув згенерований ідентифікатор для нової сутності, але коли я тестую його, він повертається0
замість цього.
public class ABCDao {
@PersistenceContext
EntityManager em;
@Transactional(readOnly=false)
public int insertABC(ABC abc) {
em.persist(abc);
// I WANT TO RETURN THE AUTO-GENERATED ID OF abc
// HOW CAN I DO IT?
return abc.id; // ???
}
}
У мене також є клас обслуговування, який обертає DAO, якщо це має значення:
public class ABCService {
@Resource(name="ABCDao")
ABCDao abcDao;
public int addNewABC(ABC abc) {
return abcDao.insertABC(abc);
}
}