我试图使用JPA TopLink将

Java中实体的枚举属性的null值存储到Oracle数据库.代码执行时没有异常或警告,但实体未存储在数据库中.

该实体定义如下:

@Entity

public class LetterDoc {

...

@Column(name = "delivery_type", columnDefinition = "VARCHAR2(20)", nullable = true)

@Enumerated(EnumType.STRING)

private DocDeliveryTypeEnum deliveryType;

...

}

Enum类DocDeliveryTypeEnum只有必需的值.

public enum DocDeliveryTypeEnum {

NORMAL,

RECOMMENDED,

ACKNOWLEDGEMENT

}

在我的情况下,我有实体的实例,其中deliveryType是sence并且是必需的.但是,在某些情况下,deliveryType是无关紧要的,我想将其保留为null.我不想设置默认值,因为这种情况没有足够的值.

实体实例的值设置为null,但是当我尝试持久化并刷新数据库中的实例时,它只是没有存储,尽管该列被定义为启用了NULL值的VARCHAR2(20).

情况是这样的:

LetterDoc let = new LetterDoc();

// settery ostatnich atributu

let.setDeliveryType(null);

try {

emptyDocDAO.persist(let);

emptyDocDAO.flush();

} catch (Exception e) {

// no exception is really catched :(

log.error(e);

}

// here I have the id of the entity

持久化时不会抛出任何异常,只是实体未存储.当我尝试通过ID稍后在另一个线程中获取实体时,它会因NoResultException而失败.

有没有机会使这项工作,或者我真的必须在持久之前为所有枚举属性设置一个值?我真的必须在Enum类中创建默认值吗?

我通过设置一个在特定情况下没有多大意义的默认值来解决我的问题.但是,我想知道是否还有其他选择.

非常感谢您的经验和建议.

java 数据库 空值_java – 是否可以将枚举属性的空值存储到数据库?相关推荐

  1. java rsa 存数据库_java – 如何创建RSA密钥对以便将其存储在数据库中?

    我正在尝试实现变异加密算法(理论上由我开发)并作为需求的一部分,我需要生成一个RSA密钥对并将其存储在数据库中,以便以后作为加密过程的一部分进行检索(仅用于加密会话密钥,以便可以使用加密的消息安全地发 ...

  2. java set 空值_Java中如何更优雅的处理空值

    经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系.但它会让你很头疼.有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务 ...

  3. java中集合和数据库中_java中list集合的内容,如何使用像数据库中group by形式那样排序...

    标签:java中list集合的内容,如何使用像数据库中group by形式那样排序,比如: 有一个 List 他中包含了一些如下的内容 JavaBean: name    money (名称)  (金 ...

  4. java sqlserver 二进制_Java将图片资源以二进制的形式保存到Sqlserver数据库中

    如何使用Java语言将图片资源以二进制的形式保存的数据库中 在sqlserver中创建表 use MyDb1 go create table SaveImg( id varchar(10) prima ...

  5. java 反复器_java集合类中的枚举器(反复器)

    在任何集合类中,必须通过某种方法在其中置入对象,再用另一种方法从中取得对象.毕竟,容纳各种各样的对象正是集合的首要任务.在Vector中,addElement()便是我们插入对象采用的方法,而elem ...

  6. java时间空值_Java SpringBoot Mybatis 日期类型属性空值保存出现异常

    日期字段空导致保存异常 数据库端表结构 可以看到字段 bill_date 是 datetime 日期类型,没有设置为 not null,那么如果前段传递来的对象中该属性为空,应该可以保存. HTTP请 ...

  7. java从端口获取数据库_Java之通过接口获取数据并用JDBC存储到数据库中

    最近做数据同步功能,从接口获取数据然后存到数据库中以便后续对数据进行相关操作,下面就贴一下相关代码. 1 import com.alibaba.fastjson.JSON; 2 import com. ...

  8. java sql 参数_java jdbc连接数据库,Properties 属性设置参数方法

    今天在整合为数据库发现在配置中实现的赋值方式,可以用代码实现.特记录下共以后参考: 代码: // 操作数据库 Connection conn; String strDatabase ="no ...

  9. java修饰方法_java接口中方法、属性修饰符详解

    java接口的修饰符:abstract(inteeface本身就是抽象的,加不加abstract都一样). 接口中字段的修饰符:public static final(默认不写) 如下解释: publ ...

最新文章

  1. Spring应用的单元测试
  2. 计算机技术停滞,究竟什么原因让科技停滞不前呢?
  3. 神经网络模拟条件反射
  4. VTK修炼之道77:交互部件_分割/配准类Widget与其他Widget
  5. docker部署django项目、mysql主从搭建、django实现读写分离
  6. IBM开放Watson AI服务增加云服务使用
  7. hive mysql编码问题_Hive中文乱码 生产环境问题解决
  8. windows/browser ---- cmd命令/powershell命令/chrome插件vimuim命令
  9. [转载] Python中关于字符串的使用演示
  10. EF安装和更新数据库
  11. 无法打开包括文件: “type_traits”
  12. 推行5S现场管理的心得体会
  13. SSM汽车租赁管理系统毕业设计源码052158
  14. Mugeda(木疙瘩)H5案例课—H5酷炫特效制作-岑远科-专题视频课程
  15. 服务器端高性能的IO模型 转自酷勤网
  16. Joyoshare Media Cutter for Mac(智能媒体剪辑软件)激活版
  17. 计算机类部分核心期刊说明
  18. CentOS7设置GRUB系统内核开机选单
  19. 计算机设计大赛数媒民族元素类,北京工业大学艺术设计学院
  20. iphone4安装使用微信

热门文章

  1. java排序——插入排序
  2. Android获取手机应用程序包的信息
  3. [Java] 初始化与清理
  4. UIScollerViewUIPageControl的一些使用方法
  5. 三种方式实现自定义圆形进度条ProgressBar
  6. (转)数据库设计范式深入浅出
  7. It's Time to Say Goodbye (此刻告别)
  8. eol自动化测试系统监控软件,整车EOL诊断系统
  9. html将变量打印到屏幕_用可视化过程解释代码运行过程和变量作用空间
  10. windows7现实计算机内存不足,win7旗舰版系统提示系统内存不足的解决方法