我有两个(非常简单的)实体:父级和子级。
@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。
有人知道为什么会这样吗?
答案 0 :(得分:1)
对于var myArray = [
{id: "one", color: "red"},
{id: "two", color: "blue"},
{id: "three", color: "green"},
{id: "four", color: "black"},
{id: "five", color: "red"},
{id: "six", color: "blue"},
{id: "seven", color: "green"},
{id: "eight", color: "black"}
]
// Creates a numeric array containing numbers
// starting from 'start' to 'end'. It's zero-indexed!
const range = ( start, end ) => {
const result = []
for(let i = start; i < end; i++) result.push(i)
return result
}
const output = range ( 0, myArray.length - 2 )
.map( i => range ( i, i + 3 ).map ( j => myArray[j] ) )
console.log ( JSON.stringify ( output ) )
注释,而不是使用Column
设置length
元素。这是columnDefinition
的Javadoc:
(可选)列长。 (仅在使用字符串值的列时适用。)
默认值:
255
您还可以看到为什么它在您的架构中默认为length
:默认值为255。为什么您的VARCHAR(255)
不起作用,但是,我不知道(我没有经验)。