java - Hibernate - 如何保留一个实体但忽略某些字段?

标签 java hibernate

我有一个包含多个字段的实体:

@Entity
public class Leilighet {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long leilighetId;
private String navn;
private String beskrivelse;
private String adresse;
private String postNr;
private String postSted;
private double pris;

//The following fields should not be stored:
private String filename;
private String filetype;
private String filesize;
private byte[] filebin;

....
}

我有一个相应的表单和操作,它将填充该对象并将其保存到 mySql。 当涉及到存储新的“Leilighet”实体时,这一切都很好。

但是当我使用此表单“编辑”现有的“Leilighet”时,我偶然发现了一些我不知道该怎么做的事情。

出于编辑目的,我不想加载整个上传的文件。仅显示文件名就足以表明存在文件。如果用户选择一个新文件,那么它应该被覆盖,但如果用户什么都不选择,那么应该保留当前文件。

但我不知道如何让 hibernate 做我想做的事。除非我用实际文件填充 filebin ,否则 hibernate 只会删除该文件。

我怎样才能告诉hibernate只更新其他字段而不是文件字段?

最佳答案

Hibernate 支持延迟加载单个属性。请参阅http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#performance-fetching-lazyproperties了解详情。

或者,您可以仅使用包含此特定用例中所需字段的 DTO,并使用适当的投影执行查询,以便从数据库填充此 DTO。

关于java - Hibernate - 如何保留一个实体但忽略某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081391/

相关文章:

java - sbt 有 M2_HOME 模拟吗?

java - SWT:最小化 Mac OS 上的子 shell

java - 在 JPA、关系数据库等中,元组是什么?

java - hibernate4-maven-plugin 找不到带注释的类

java - 如何为 Google Cloud SQL 配置 Java Hibernate?

java - 深克隆数组对象时遇到问题

java - 返回一个范围以与 BigDecimal 进行比较

Java-在数组中搜索尾随 0

postgresql - macOS 中的 Postgres 和 JPA

java - 带有多个下划线的 Hibernate ManyToOne 映射不起作用