0
我正在使用JPA,我想讓他新持久ID,但我不知道如何得到它。我能夠得到身份證,但我不顯示它,但我不知道如何獲得它的價值。獲取最新的持久ID,並將其返回
我有一個持續存在的這種方法:
public Artist createArtist(int id, String name, int genre) {
Artist artist = new Artist(id, name, genre);
em.persist(artist);
em.flush();
System.out.println("Last ID: "+artist.getId());
return artist;
}
和代碼調用方法這幾行:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("JpaBasicsTutorial");
EntityManager em = emf.createEntityManager();
ArtistService service = new ArtistService(em);
Artist artista = new Artist();
EntityTransaction transaction = em.getTransaction();
transaction.begin();
Artist artist = service.createArtist(artista.getId(),"Franz", 1);
System.out.println("Latest id: " +artista.getId()); // HOW TO GET ID HERE?
transaction.commit();
System.out.println(String.format("Persisted: %s\n", artist));
這裏是生成ID代碼:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
public Artist(int id, String name, int genre) {
this.name = name;
this.genre = genre;
}
public int getId() {
return id;
}
請爲您的藝術家實體顯示代碼。看起來你不會爲你的實體使用id生成策略,而是你手動設置它。 – Ish
你想要最高的身份證號碼嗎?或者訪問或更新最後一條記錄? – markspace
我實際上發現如何通過顯示它來獲取最新的id,就像你在上面的代碼中看到的一樣,但是我不知道如何返回它。 – Makudex