Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 Hibernate/JPA@Postload注释是否将对象标记为;肮脏;?_Java_Hibernate_Jpa - Fatal编程技术网

Java Hibernate/JPA@Postload注释是否将对象标记为;肮脏;?

Java Hibernate/JPA@Postload注释是否将对象标记为;肮脏;?,java,hibernate,jpa,Java,Hibernate,Jpa,我们正在使用Hibernate EntityManager 3.6.10(实现JPA2)。我已经检查了JPA规范和Hibernate文档,但它似乎没有解决这个问题 我有许多实体对象,它们使用@PostLoad从字符串的持久字段中修剪尾随空格: @Column(name="MY_DESCRIPTION", nullable=false, length=30) private String myDescription; @PostLoad private void trimStrings() {

我们正在使用Hibernate EntityManager 3.6.10(实现JPA2)。我已经检查了JPA规范和Hibernate文档,但它似乎没有解决这个问题

我有许多实体对象,它们使用@PostLoad从字符串的持久字段中修剪尾随空格:

@Column(name="MY_DESCRIPTION", nullable=false, length=30)
 private String myDescription;

@PostLoad
private void trimStrings() {
    myDescription = myDescription.trim();
}

这会将对象标记为“脏”并生成额外的保存吗

是的,这会将字段标记为脏,并生成额外的保存。

正如Andrei提到的,这会将对象标记为脏。如果仍然需要修剪值,可以将修剪后的版本放在未保存的临时字段中,并隐藏保存在数据库中的值。您还需要更新更新瞬态值时保存的属性


或者,如果该值不应包含空格,则只需在DB上运行更新,以删除这些列中的所有空格。

不幸的是,DB都是固定长度的空格填充字段,并且设计不可协商(ugh)。