كيفية تنفيذ طريقة التحديث () في DAO باستخدام EntityManager (JPA)؟
-
05-07-2019 - |
سؤال
ما هي الطريقة القياسية لتنفيذ التحديث البسيط؟
مثال: لدينا مستخدم برقم هاتف nnnnn والآن نريد ضبطه على Yyyyyy.
@PersistenceContext
private EntityManager em;
public void update (User transientUser) {
what should be here?
}
كيان المستخدم بسيط قدر الإمكان:
@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
}
المحلول
وفقا لمواصفات JPA ، EntityManager#merge()
سيعود إشارة إلى اخر كائن من الشخص الذي تم تمريره عندما تم تحميل الكائن بالفعل في السياق الحالي. لذا ، أفضل إعادة نتيجة merge()
واكتب update()
طريقة مثل هذه:
@PersistenceContext
private EntityManager em;
public User update (User transientUser) {
return em.merge(transientUser);
}
ثم ، استخدمه مثل هذا (تخطي جزء التهيئة):
user.setPhone("YYYYYY");
user = dao.update(user);
نصائح أخرى
قم بتغيير العقار ثم استخدم entityManager Merge ()
http://java.sun.com/javaee/5/docs/api/javax/persistence/entitymanager.html#merge٪28t٪29
لا تنتمي إلى StackOverflow