Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
Mysql 为postgres配置hibernate,使col=null而不是“0”;是空的;_Mysql_Postgresql_Hibernate - Fatal编程技术网

Mysql 为postgres配置hibernate,使col=null而不是“0”;是空的;

Mysql 为postgres配置hibernate,使col=null而不是“0”;是空的;,mysql,postgresql,hibernate,Mysql,Postgresql,Hibernate,我通读了这篇文章 在hibernate中,NamedQuery经常被用作我们公司的goto,CriteriaAPI是一个很大的一次性工具。他们只是尽可能地简单 select c from Customer c where c.firstName=:firstName and c.middleName=:middleName and c.lastName=:lastName 当然,然后我们遇到了middleName为空的情况,事情就破裂了。然后我们发现firstName为空,然后就坏了。在整个

我通读了这篇文章

在hibernate中,NamedQuery经常被用作我们公司的goto,CriteriaAPI是一个很大的一次性工具。他们只是尽可能地简单

select c from Customer c where c.firstName=:firstName and c.middleName=:middleName and c.lastName=:lastName
当然,然后我们遇到了middleName为空的情况,事情就破裂了。然后我们发现firstName为空,然后就坏了。在整个模式中,我们经常会遇到这样的情况,我们正在寻找一种解释的方法

c、 对于c,middleName=null。middleName为null时为null

是否有一个hibernate设置,这样它就可以在mysql和postgres(最好的理想情况)中正确地执行它,或者在上面的postgres中使用该参数。那在哪里?我怎么能设置?或者是每个查询(呃)

我们正在从MySQL切换到postgres的过程中,因为MySQL处理空列上的唯一约束的方法与postgres相比对我们来说非常不理想(因为MySQL允许John null Smith两次,而postgres不允许)

谢谢, Dean

在PostgreSQL中,运算符是空安全相等谓词。然而,与mysql的
操作符类似,该谓词是SQL标准的扩展


我不知道hibernate有任何空安全的相等运算符,所以我想处理此类查询的唯一方法是通过该特性。显然,这些查询是特定于所使用的底层数据库的,因此并不理想。

根据documation=null是不可能的。可能是因为这不是SQL标准。我认为与没有区别。PostgreSQL还具有
transform\u null\u equals
参数,用于对愚昧的应用程序进行转换。是的,我们正在考虑使用transform\u null\u equals,因为太多的开发人员一直在编写错误的查询,修改我们的查询以适应5列上的null非常快。我希望该规范能够考虑到这一点,因为它似乎正在为我们造成大量的SQL语句。