爲什麼hibernate認爲字符識別器不安全?休眠字符識別器值
Using default @DiscriminatorValue for a discriminator of type CHAR is not safe
爲什麼hibernate認爲字符識別器不安全?休眠字符識別器值
Using default @DiscriminatorValue for a discriminator of type CHAR is not safe
大概是因爲CHAR型在於附加空格的每一個值,直到所得到的文本具有列的長度。這會導致各種各樣令人討厭的錯誤,這些錯誤不會與varchars發生。
是否有在你的繼承樹的抽象的祖先?
當你有標記爲@Entity一個抽象基類,休眠似乎認爲抽象類應該有一個鑑別值,即使永遠不會有該類型的數據庫行。 There is a Hibernate bug for this issue.
一個解決辦法可能是使用@MappedSuperclass。缺點是:你不能根據抽象類型進行查詢,因爲它不再是@Entity。
您可能希望重新評估是否繼承實際上是一個非常適合你的實體模型。見this question。
我想這是因爲CHAR
默認鑑別值就是空間,這可能會導致各種誤解。
我就遇到了這個錯誤消息時我有沒有用@DiscriminatorValue
註解混凝土基類。添加註釋時解決了錯誤。
請確保映射類型層次結構中的每個具體類都有一個@DiscriminatorValue
(包括基類),並且此錯誤可能會消失。