在我的数据库表中,我有一个char(1)
列,它的内容可以是Y或N(CHECK约束)。我在Java中定义了一个String属性,在我的类中定义了一个基于String的setter。此外,为了方便起见,我添加了一个带有布尔参数的@transient
setter/getter。
那么,Hibernate基于什么属性进行映射呢?方法名称?参数名称?参数类型?在setter中使用final
可以吗?如果我的属性的名称与表列的名称不同,这会有什么不同吗?
private String foobar = "N";
public void setFoobar(final String foobar) {
this.foobar = foobar;
}
@Column(name = "FOOBAR")
public String getFoobar() {
return this.foobar;
}
@Transient
public void setFoobar(final boolean foobar) {
this.setFoobar(foobar ? "Y" : "N");
}
@Transient
public boolean isFoobar() {
return (this.getFoobar().equals("Y") ? true : false);
}
我认为出现这个问题是因为string
和boolean
属性(即getter和setter)使用了相同的名称--尝试使用不同的名称。
或者,您可以使用自动处理此转换的内置类型-只需用@type(type=“yes_no”)
注释Boolean
属性。
有两种类型的对象属性。 第一种是 数据属性。我们已经知道如何使用它们了。到目前为止,我们使用过的所有属性都是数据属性。 第二种类型的属性是新东西。它是 访问器属性(accessor properties)。它们本质上是用于获取和设置值的函数,但从外部代码来看就像常规属性。 Getter 和 setter 访问器属性由 “getter” 和 “setter” 方法表示。在对象字面量中,它们用 get
问题内容: 我的PostgreSQL数据库(9.2)中有一个表,其中的列类型为JSON。我很难将此列映射到“ JPA2实体”字段类型。 我尝试使用String,但是当我保存实体时,出现一个异常,即它无法将字符转换为JSON。 处理JSON列时使用的正确值类型是什么? 一个简单的解决方法是定义一个文本列。 问题答案: 请参阅PgJDBC错误#265。 PostgreSQL过于严格,对数据类型转换非常
MapStrut的新成员;对象到字符串错误: [错误] /util/LicenseMapper.java:[11,23]无法映射属性" Java . lang . object license . custom fields[]。值" to " Java . lang . string license . custom fields[]。值”。考虑声明/实现一个映射方法:“Java . lang
我不明白为什么我必须对类中的私有属性使用getter或setter。
问题内容: 我将MySQL列声明为 JSON 类型,并且在使用Jpa / Hibernate映射时遇到问题。我在后端使用Spring Boot。 这是我的代码的一小部分: 该程序返回一个错误,并告诉我无法映射该列。 在mysql表中,该列定义为: json_value JSON NOT NULL; 问题答案: 我更喜欢这样: 创建从Map到String的转换器(属性转换器),反之亦然。 使用Map
问题内容: 我有一个颜色枚举 我有包含它的MyEntity。 我已经有一个UserType来映射我的枚举。 您知道如何在Hibernate hbm.xml中映射枚举集吗? 我需要UserType还是最简单的方法? 谢谢 编辑: 只是为了说明一下,我正在寻找 hbm.xml 配置而不是@CollectionOfElements注释 问题答案: 我使用EnumSet映射线程中的解决方案,该解决方案依赖