Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Hibernate MySQL单向多通_Java_Mysql_Hibernate_Spring Data Jpa - Fatal编程技术网

Java Spring Hibernate MySQL单向多通

Java Spring Hibernate MySQL单向多通,java,mysql,hibernate,spring-data-jpa,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

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

@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


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

对于
注释,而不是使用
列定义
设置元素。以下是长度为
的Javadoc:

(可选)列长度。(仅当使用字符串值列时适用。)

默认值:

255


您还可以看到为什么在您的模式中它默认为
VARCHAR(255)
:默认值为255。但是,我不知道为什么你的
列定义不起作用(我没有这方面的经验)。

你好,@Slaw。我做了更改,但问题仍然存在。我检查了hibernate日志中的查询,它们都正常。hibernate代理和/或spring数据jpa存储库似乎存在一些问题:事实上,从一定大小的文本开始,问题就开始了。我不认为自己是JPA/Hibernate/SQL的专家,所以我不确定我能不能帮助你。你有没有休眠重建模式?还是使用旧生成的模式?是的,也没有。我删除了表,Hibernate再次创建了COR。直接。即使我复制查询并在mysql客户端上通过它,它也会得到正确的处理。我相信问题发生在JPA或Spring层。实际上,只有当长度为1537或更高时才会发生错误。