2009-11-27 18 views
16

Basit güncellemenin uygulanmasının standart yolu nedir?DAO'da update() yöntemi EntityManager (JPA) kullanılarak nasıl uygulanır?

Örnek: NNNNNN telefon numarası olan Kullanıcı var ve şimdi YYYYYY olarak ayarlamak istiyoruz.

@PersistenceContext 
private EntityManager em; 

public void update (User transientUser) { 
    what should be here? 
} 

Kullanıcı varlık mümkün olduğunca basit:

@Entity 
@Table (name = "USER") 
public class User { 

    @Id 
    @GeneratedValue 
    private Integer id; 

    @Column (nullable = false, unique = true) 
    private String login; 
    private String phone; 

    public User() { } 

    ... //some setters and getters 
} 
+0

em.merge: bu gibi kullanmak (başlatma kısmını atlayarak), Sonra

@PersistenceContext private EntityManager em; public User update (User transientUser) { return em.merge(transientUser); } 

: Yani, ben daha çok merge() sonucunu döneceğini ve bunun gibi update() yöntem yazmak transientUser)? – marcosbeirigo

+0

belki de, ben – Roman

+0

aslında emin değilim, şimdi sahip olduğum budur. Ancak henüz test etmedim çünkü ünite testlerinin bağlamını yapılandırmak o kadar kolay değil. – Roman

cevap

33

) (birleştirme kullanın EntityManager#merge() dönecektir Nesne değiştiğinde iletilene göre başka nesnesine bir başvuru mevcut içerikte yüklü dy. (

user.setPhone("YYYYYY"); 
user = dao.update(user); 
İlgili konular