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

休眠注释-字段或属性访问哪个更好?

田博远
2023-03-14
问题内容

这个问题与Hibernate Annotation PlacementQuestion有关。

但是我想知道哪个 更好 ?通过属性访问还是通过字段访问?每种都有哪些优点和缺点?


问题答案:

我更喜欢访问器,因为我可以在需要时向访问器添加一些业务逻辑。这是一个例子:

@Entity
public class Person {

  @Column("nickName")
  public String getNickName(){
     if(this.name != null) return generateFunnyNick(this.name);
     else return "John Doe";
  }
}

此外,如果您将其他库(例如一些基于JSON转换的库,BeanMapper或Dozer或其他基于getter/setter属性的Bean映射/克隆库)添加到混合库中,则可以确保该库与持久性同步经理(都使用getter / setter)。



 类似资料:
  • 问题内容: 但是我想知道哪个更好?通过属性访问还是通过字段访问?每种都有哪些优点和缺点? 问题答案: 我更喜欢访问器,因为我可以在需要时向访问器添加一些业务逻辑。这是一个例子: 此外,如果您将其他库(例如一些基于JSON转换的库,BeanMapper或Dozer或其他基于getter / setter属性的Bean映射/克隆库)添加到混合库中,则可以确保该库与持久性同步经理(都使用getter /

  • 问题内容: 休眠注释应该放在哪里? 它是我的实例变量上方的线吗?还是在吸气剂之前?还是在二传手之前?还是真的不重要吗? 非常感谢 问题答案: 您可以将它们放在 野外 或 吸气剂上 。从《 Hibernate注释参考指南》中: 2.2.1。将POJO标记为持久实体 (…) 根据您是否注释字段或方法,Hibernate使用的访问类型将是字段或属性。EJB3规范要求您在将要访问的元素类型上声明注释,即,

  • 问题内容: 我在设置字符串类型时遇到麻烦,就像 而且它没有用,我检查了mysql模式,它仍然是varchar(255),我也尝试过, 要么 我正在尝试将类型设为TEXT,任何想法将不胜感激! 问题答案: 您说“我检查了mysql模式,它仍然是varchar(255)”-您是否希望Hibernate自动更改数据库?不会的 即使您已经设置,我也不相信Hibernate会改变现有的列定义。 如果要生成新

  • 问题内容: 是否可以访问字段值,该字段名在注释中描述,该注释在类中注释了另一个字段。 例如: 注解: 现在,是否可以从ConstraintValidator实现类中的User类访问字段密码? 编辑: 我写了这样的东西: 现在的问题是如何获取用户对象实例并比较字段值? 问题答案: 您或者需要编写一个类级别的约束,以便在其中将完整的 User 实例传递给 isValid 调用,或者可以使用类似 @Sc

  • 是否可以访问一个字段值,其中字段名在批注中描述,批注类中的另一个字段。 例如: 注释: 我写了这样的东西: 现在的问题是如何获取用户对象实例并比较字段值?

  • 问题内容: 我正在建立一对多的关系。所以,我有一个父母和一个孩子。级联属性设置为全部。 我想知道我们是否考虑以下代码: Q1)如果父级拥有该关系,如,对于父级inverse = false,那么是否会在数据库中更新子级元素? Q2)如果孩子拥有关系,如,对于父inverse = true,则是否会在数据库中更新子元素添加? Q3)在是否可以看到更新的方面,谁拥有关联关系对上述代码没有影响? 非常感