java - Spring Hibernate MySQL 单向 ManyToOne

标签 java mysql hibernate spring-data-jpa

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

@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。

有人知道为什么会发生这种情况吗?

最佳答案

对于您的Column注释,而不是使用columnDefinition设置length元素。这是 length 的 Javadoc:

(Optional) The column length. (Applies only if a string-valued column is used.)

Default:

255

您还可以了解为什么它在架构中默认为 VARCHAR(255):默认值为 255。但是,为什么您的 columnDefinition 不起作用不知道(我没有这方面的经验)。

关于java - Spring Hibernate MySQL 单向 ManyToOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971806/

相关文章:

java - 为什么我的 JComboBox 返回 null?

php from 向 mysql 数据库表插入一行

PHP-MySQL消息系统

java - 如何在 Controller 中制作删除按钮

java - 如何以编程方式在布局中居中进度条?

java - 如何将整数值分配给数组并将它们传递给另一个函数?

Java Streams Collectors.toList() 与 map() 与 mapToInt()

mysql - Kafka Mysql Connectorplugin.path配置

java - hibernate 中的外键,为什么要创建对象,如何更新引用实体中的记录

java - 使用hibernate读取大量数据时OutOfMemory