1
A
回答
1
至於JPA規範告訴我們您無法通過「配置」更改@Version
註解。您在程序代碼中使用@Version
或者您沒有。
參照官方JPA specification(最終版本,JPA 2.1)3.4.2節(第90頁),我們發現:
一個實體的樂觀鎖定如果它有一個屬性或自動啓用字段使用
Version
映射映射。[...]
如果只有一些實體包含版本屬性,持久化提供商運行時需要檢查哪一個版本屬性已被指定的實體。對象圖的一致性不保證,但是某些實體上沒有版本屬性不會阻止操作完成。
但是,您可以使用繼承的概念通過抽象基類提供@Version
只在一個地方。你可以寫成這個類如下:
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractBaseEntity {
public static final long INVALID_OBJECT_ID = -42;
@Version
private int version;
@Id
@SequenceGenerator(name = "sequence-object", sequenceName = "ID_MASTER_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence-object")
@Column(name = "id")
protected Long objectID = INVALID_OBJECT_ID;
public final int getVersion() {
return version;
}
@Override
public long getObjectID() {
return objectID;
}
// ... maybe other methods or fields ...
}
因此,提供有兩個屬性所有@Entity
註解,從AbstractPersistentEntity
繼承子類:(I)objectID
及(ii)version
一次。
@Entity
public class SomeClass extends AbstractBaseEntity /*implements SomeInterface*/ {
// ... specific methods or fields ...
}
有關使用@MappedSuperclass
詳見也this answer:例如,類SomeClass
可以作爲被寫入。
希望它有幫助。
相關問題
- 1. Python是否有JGraph的替代方案?
- 2. 是否有getRunningTask API的替代方案
- 3. 是否有使用Rails.env的替代方案?
- 4. 是否有使用RoleProvider的替代方案?
- 5. 配置:: getInstance的CakePHP 2.0替代方案?
- 6. PHP是否有內置的exec(「nslookup」)替代方案?
- 7. 是否有可靠的(單服務器)MongoDB替代方案?
- 8. 是否存在快速且可預測的`SendKeys`替代方案?
- 9. 是否可以爲Orchard創建List的替代方案?
- 10. 是否有支持HTTPS的IIS的免費替代方案?
- 11. 用於配置的XML序列化的替代方案
- 12. 在AngularJs中,$ watch是否有更高性能的替代方案?
- 13. 您是否知道任何有價值的XML_Serializer替代方案?
- 14. Android是否有免費的地圖替代方案?
- 15. Flash CS4是否有ASDoc的替代方案?
- 16. 在PHP中是否有shell_exec和proc_open的替代方案?
- 17. 是否有加入3個或更多表的替代方案?
- 18. 在Mac OS X/Linux中是否有RawInput的替代方案
- 19. Z.EntityFramework.Extensions是否有非商業的替代方案?
- 20. Apache Solr中是否有MySQL的存儲過程替代方案?
- 21. 是否有樂觀鎖定的替代方案
- 22. Grails中是否有ElementCollection/CollectionOfElements的替代方案
- 23. 是否有堆棧溢出模型的開源替代方案?
- 24. 是否有替代方案使用FileProvider來獲取安裝Android apk的uri?
- 25. 針對替代方案的Mysql匹配
- 26. HABTM質量分配的替代方案
- 27. W3C驗證圖像 - 非常大 - 是否有替代方案?
- 28. iOS故事板是否有XML替代方案?
- 29. PDFlib for php,是否有其他替代方案
- 30. SIP中繼是否有其他替代方案?
太棒了 - 謝謝 - 我使用的是Spring的AbstractPersitable ATM,所以我可能只是子類,除非你知道Spring內部還提供了版本屬性。 – Ole