spring hibernate mysql单向manytone

abithluo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(352)

我有两个(非常简单的)实体:父实体和子实体。

@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。
有人知道为什么会这样吗?

dly7yett

dly7yett1#

为了你的 Column 注解,而不是使用 columnDefinition 设置 length 元素。这是我的javadoc length :
(可选)列长度(仅在使用字符串值列时应用。)
违约:
255
您还可以看到它为什么默认为 VARCHAR(255) 在您的模式中:默认值是255。为什么是你的 columnDefinition 不起作用,但是,我不知道(我没有这方面的经验)。

相关问题