【问题标题】:Is there a easy way to map varchar2(1) ("1" or "0") to JPA boolean type有没有一种简单的方法将 varchar2(1) ("1" 或 "0") 映射到 JPA 布尔类型
【发布时间】:2015-02-14 22:15:07
【问题描述】:

我知道默认映射是从 oracle 数据类型 NUMBER(1) 到 JPA java Boolean,但不确定是否有从 varchar2(1)(它是“1”或“0”)到 JPA java 的默认转换布尔值?和NUMBER(1)的映射方式一样吗?

不确定下面的想法是否ok,引用自here

public class People{

    @ExternalValues({"true=1", "false=0"})
    @Type(String.class)
    private Boolean weird;

    ...
}

我在这里使用 OpenJPA 2.2.0。谢谢

【问题讨论】:

  • 您使用的是哪个 JPA 版本?
  • @Luiggi Mendoza OpenJPA 2.2.0,符合 JPA 2.0 规范 :)
  • 仅供参考 如果您使用的是 JPA 2.1,那么您可以提供一个 AttributeConverter 并根据您的感觉对其进行映射。既然你不是,那么你必须找到特定于 OpenJPA(非便携式)的东西。
  • @ExternalValues 路由应该适用于您想要做的事情。

标签: java oracle jakarta-ee jpa openjpa


【解决方案1】:

您可以在 getter 、 setter 方法中使用类型转换,并为您的属性数据类型使用 String 。

@Column(length=1 )
private String string;  

public Boolean getString() {
    return Boolean.valueOf(string) ;
}

public void setString(Boolean string) {
    this.string =  (string) ? "1" : "0";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2012-06-17
    • 2020-10-05
    • 2021-03-28
    • 1970-01-01
    • 2011-04-16
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多