2

为什么hibernate认为char鉴别器不安全?

Using default @DiscriminatorValue for a discriminator of type CHAR is not safe
4

3 回答 3

3

您的继承树中是否有抽象祖先?

当您将抽象基类标记为@Entity 时,Hibernate 似乎认为抽象类应该具有鉴别器值,即使该类型永远不会存在数据库行。这个问题有一个 Hibernate 错误。

一种解决方法可能是使用@MappedSuperclass。缺点:您将无法基于抽象类型进行查询,因为它不再是@Entity。

您可能希望重新评估继承是否真的适合您的实体模型。看到这个问题

于 2014-06-10T17:14:08.100 回答
3

可能是因为 CHAR 类型包括将空格附加到每个值,直到结果文本具有列的长度。这会导致 varchars 不会出现的各种讨厌的错误。

于 2011-05-28T10:15:03.963 回答
1

我认为这是因为默认的鉴别器值CHAR只是空格,这可能会导致各种误解。

当我有一个没有用@DiscriminatorValue. 当我添加注释时,错误解决了。

确保映射类型层次结构中的每个具体类都有一个@DiscriminatorValue,包括基类,并且此错误可能会消失。

于 2016-06-14T18:09:42.370 回答