سؤال

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;

    private int salary;

    @Version
    private long version;

    // ...getters and setters
}
  1. هل هو مطلوب لإنشاء setter / getter ل version?
  2. عند الاستمرار في هذا الكيان مع السبات، لا أحتاج إلى تعيين هذه القيمة يدويا، أليس كذلك؟
  3. ماذا أحتاج إلى تكوينه من أجل استخدام التحقق التزام متفائل مع الربيع hibernateTemplate.saveOrUpdateب هل جميع قواعد البيانات المدعومة؟
  4. كيفية اختبار الوحدة هذا الكيان؟ في قاعدة البيانات الخاصة بي، جميع سجلاتي تظهر حقل الإصدار لها قيمة 0
  5. سوف تتصل hibernateTemplate.saveOrUpdate زيادة قيمة النسخة في كل مرة؟
هل كانت مفيدة؟

المحلول

أود أن أقول:

  1. مطلوب / الحصول على الإصدار مطلوب، كما يمكنك تعيين الإصدار الخاص بك في بعض الأحيان (عند إعادة إنشاء مثيل جديد من البيانات القديمة)
  2. لا تحتاج إذا قرأت المثيل من قاعدة البيانات. (عند إنشاءه في التعليمات البرمجية الخاصة بك مع جديد، ستكون قصة مختلفة).
  3. لا أرى أي شيء آخر. لم يكن لدي مشكلة مع قاعدة بيانات.
  4. لا تذهب اختبار الوحدة قاعدة البيانات في رأيي، لذلك تسمى الاختبارات التي تنطوي على قاعدة البيانات اختبارات التكامل. لا يجب أن يكون لديك الكثير منها، لأنها بطيئة، ولا يقومون حقا باختبار التعليمات البرمجية الخاصة بك، ولكن المزيد من رموز السبات / برنامج التشغيل / قاعدة البيانات ... يجب أن تثق بها، أو مجرد اختبارها مرة واحدة، ولكن لا لجميع كياناتك.
    لرؤية قيم الإصدار أكثر من 0، اقرأ / تعديل / تحديث كيانك في المعاملة، يزيد الإصدار من قبل واحد. الخروج من المعاملة، افعلها مرة أخرى، تزيد القيمة ...
  5. سيزيد الإصدار في كل مرة يتم تعديل صف قاعدة البيانات.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top