在JPA中,我很困惑何時使用屬性optional=false
和註釋@Column(nullable=false)
。有什麼不同?@ManyToOne(可選= false)與@Column(nullable = false)之間的區別
41
A
回答
67
@Column(nullable=false)
是用於生成模式的指令。在該類中生成的數據庫列在實際數據庫中將被標記爲不可空。
optional=false
是一個運行時指令。它所做的主要功能與延遲加載有關。除非你記得設置optional = false(因爲Hibernate不知道應該有一個代理還是一個null,除非你告訴它空值是不可能的,所以它可以產生一個非集合映射實體代理)
+8
另一個有趣的事實是,大多數持久性提供程序使用「可選」參數給出的信息在運行時優化查詢。例如加載實體時。因此,使用optional = false指定的實際實體的所有關係在加載時會導致INNER JOIN到它們各自的關係,而使用optional = true指定的關係會導致LEFT JOIN。 – Lars 2016-01-25 21:47:32
0
相關問題
- 1. 「!= true」和「== false」之間的區別?
- 2. 「!= true」和「= false」之間的區別
- 3. AutoPostBack = True和AutoPostBack = False之間的區別?
- 4. request.getSession()。getId()和request.getSession(false)之間的區別?
- 5. 保存(false)和保存(:validate => false)之間的區別
- 6. Flask-SQLAlchemy nullable = False
- 7. 'false === $ var'和'$ var === false'之間有什麼區別?
- 8. @OneToOne(可選= false)和@JoinColumn(nullable = false)一起使用
- 9. 持久性@Column nullable = false可以插入null
- 10. false/FALSE - 有什麼區別?
- 11. pyspark:StructField(...,...,False)總是返回`nullable = true`而不是`nullable = false`
- 12. 回覆短信息:「compose_mode」= true與false之間有什麼區別?
- 13. false和FALSE有什麼區別?
- 14. !false和!= false有什麼區別
- 15. 區別:[ScaffoldColumn(false)]和[Display(AutoGenerateField = false)]
- 16. DirectCast(False,Nullable(Of Boolean))錯誤
- 17. 「Convert.ToString(Nullable <int>)」和「Nullable <int> .ToString()」之間的區別?
- 18. php 5 strpos()返回0和false之間的區別?
- 19. Hide()和Visible = false之間的區別是什麼?
- 20. PredicateBuilder <True>和PredicateBuilder <False>之間的區別?
- 21. GC.GetTotalMemory(false)和GC.GetTotalMemory(true)之間的區別是什麼
- 22. control.hide/show和control.visible之間是否有區別:= false/true?
- 23. LinqToSql Nullable Column
- 24. Onkeydown返回false和返回super.onkeydown()之間有什麼區別?
- 25. Doctrine MongoDB ODM nullable = false不起作用
- 26. objective-c中的YES/NO,TRUE/FALSE和true/false是否有區別?
- 27. VB.NET - 使用HasValue = False創建Nullable(Of T)
- 28. 爲什麼localDate字段是「nullable = false」
- 29. @ @實際上使用@Entity和insertable = false且updateable = false @Column
- 30. b = false與if(b)b = false
possible dupe - http://stackoverflow.com/questions/2899073/basicoptional-false-vs-columnnullable-false-in-jpa我認爲@Basic(可選= false)的討論適用於@ManyToOne (可選= false) – 2010-07-26 02:40:37