当前位置: 首页 > 面试题库 >

如何使Hibernate忽略方法?

闾丘冠玉
2023-03-14
问题内容

这个问题本质上是相反的这一个
我有这样的方法:

public boolean isVacant() {
    return getEmployeeNum() != null && getEmployeeNum().equals("00000000");
}

当我加载它时,Hibernate抱怨我没有称为的属性vacant。但是我不想要一个叫做vacant-我不需要存储数据的属性-这仅仅是逻辑。

hibernate状态:

org.hibernate.PropertyNotFoundException:在com.mycomp.myclass类中找不到空置属性的设置器…

我可以在isVacant()方法中添加注释以使Hibernate忽略它吗?


问题答案:

添加@Transient到该方法,然后Hibernate应该忽略它。

引用Hibernate文档:

实体的每个非静态非瞬态属性(取决于访问类型的字段或方法)都被视为永久属性,除非您将其注释为@Transient



 类似资料:
  • 问题内容: 这是我的实体: 这是我获得人员名单的方式: 如果我正确理解提取图,则它必须仅加载我指定的那些字段。但是,字段“ birthDate”也已加载。此外,我看到在hibernateSQL查询中选择了4列。 如何解决?我使用hibernate 5.1.0作为JPA提供程序。 问题答案: 实体图旨在控制延迟或渴望加载哪些关系(例如,一对一,一对多等)。它们可能不适用于加载各个列(取决于提供程序)

  • 这是我的实体: 这是我如何得到的人的名单: 如果我正确理解fetch graph,它必须只加载我指定的字段。但是,“生日”字段也会被加载。此外,我看到在hibernate sql查询中选择了4列。 如何修复它?我使用Hibernate5.1.0作为JPA提供程序。

  • 问题内容: 我想使用方法但忽略大小写。 假设我有“会话”,并且在“ sEsSi”上使用了它,那么它应该返回。 我该如何实现? 问题答案: 在测试之前,请使用或标准化您的字符串。

  • 问题内容: 我有一个实体,该实体与另一个用@Where注释的实体有关联,就像这样 最近不可避免的事情发生了,我需要加载不符合@Where子句的EntityB。我可以删除@Where批注,但是它使用很多,所以理想情况下,我不想这样做。除了手动加载EntityB列表之外,还有另一个查询,我还有哪些选择?我可以告诉Hibernate忽略@Where注释吗? 问题答案: 经过大量研究,这似乎是不可能的。我

  • 该字段“auftragsnummer”始终保持为空,即使它用@GeneratedValue进行了注释: 我使用存储它。引用的生成器类实现。我不知道为什么它被忽视了。 环境: Hibernate5.0.1 Spring 4.2.1 Java 7 DB2 10

  • Mapstruct使用我自己的无参数方法作为List的工厂(而不是构造函数) 我试着映射一些对象树,应该逐级构建。我有一种硬编码根节点的方法和另一种方法,用于将实体映射到节点。所以我有一个生成根名称列表的方法,和映射的抽象方法。 } 所以在生成的代码中,“childrenNames”看起来像@Override public List childrenNames(List children){if(