Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么hibernate加载具有字节数组字段的模型会得到空值?_Java_Hibernate_Bytearray_Lob - Fatal编程技术网

Java 为什么hibernate加载具有字节数组字段的模型会得到空值?

Java 为什么hibernate加载具有字节数组字段的模型会得到空值?,java,hibernate,bytearray,lob,Java,Hibernate,Bytearray,Lob,hibernate的pojo,具有Lob字段,其类型为byte[]: 然后我读取一个空文件并将其保存到数据库: MyFile file = new MyFile(); file.setFileContent(new byte[0]); sessionFactory.getCurrentSession().save(file); 我想将其加载到另一个事务中: MyFile myFile = sessionFactory.getCurrentSession().query("...").uniq

hibernate的pojo,具有Lob字段,其类型为byte[]:

然后我读取一个空文件并将其保存到数据库:

MyFile file = new MyFile();
file.setFileContent(new byte[0]);

sessionFactory.getCurrentSession().save(file);
我想将其加载到另一个事务中:

MyFile myFile = sessionFactory.getCurrentSession().query("...").uniqueResult();
System.out.println(myFile.fileContent);
它打印:

null

我不明白为什么字段fileContent为null,它不应该是新字节[0]?

您试过了吗@Lob@Basicfetch=急切。您尝试过使用非空字节数组吗?@jbniset,非空字节数组工作正常。加载时将获得包含正确内容的字节数组。这难道不是数据库的一个功能吗?例如,当您保存空字符串时,Oracle实际上会在varchar列中保存NULL。如果blob列中的ampty字节数组的行为相同,我不会感到惊讶。我认为任何数据库都无法区分空字节[]和空字节[]。它们都不包含任何内容。空字节[]仅提供对RAM中内存的引用,该内存可以包含一些信息。数据库表中的列提供了相同的功能。它们都只是容器。查询表时,您将获得该列的内容。无效的
null