我有两个(非常简单的)实体:父实体和子实体。
@Entity
class Child {
@Id
@Column(name = "id", nullable = false, updatable = false, columnDefinition = "BINARY(16)")
private UUID id;
@Column(columnDefinition="varchar(4000)")
private String obs;
@NotNull
@ManyToOne(optional = false)
@JoinColumn(nullable = false, updatable = false)
private Parent parent;
(getters and setters)
}
原始obs字段没有注解,所以hibernate将其创建为varchar(255),但我需要它来处理更大的文本。更改之后(如上所示),方法getparent()总是返回null。
有人知道为什么会这样吗?
1条答案
按热度按时间dly7yett1#
为了你的
Column
注解,而不是使用columnDefinition
设置length
元素。这是我的javadoclength
:(可选)列长度(仅在使用字符串值列时应用。)
违约:
255
您还可以看到它为什么默认为
VARCHAR(255)
在您的模式中:默认值是255。为什么是你的columnDefinition
不起作用,但是,我不知道(我没有这方面的经验)。