Hibernate PostgreSQL中from-dual的等价性
我使用Hibernate和Oracle。我使用了以下代码:Hibernate PostgreSQL中from-dual的等价性,hibernate,postgresql,Hibernate,Postgresql,我使用Hibernate和Oracle。我使用了以下代码: if (null != sessionFactory) { Session s = currentSession.get(); if ((null == s) || !s.isOpen()) { s = sessionFactory.openSession(); curren
if (null != sessionFactory) {
Session s = currentSession.get();
if ((null == s) || !s.isOpen()) {
s = sessionFactory.openSession();
currentSession.set(s);
} else {
try {
HibernateWork hibernateWork = new HibernateWork("SELECT 1 FROM DUAL");
s.doWork(hibernateWork);
} catch (Exception e) {
s = sessionFactory.openSession();
currentSession.set(s);
}
}
return s;
}
我想对PostgreSQL做同样的事情,但PostgreSQL不支持“FROM dual”语法。我想知道PostgreSQL中dual的等价性。您根本不需要
FROM
子句。只需选择1即可。只需使用选择1即可。从
Oracle使用“假”双表进行许多选择,在PostgreSQL中,我们可以编写选择,而无需使用部分。此表是在postgres中创建的,旨在缓解移植问题。这使得代码在某种程度上与Oracle SQL保持兼容,而不会干扰Postgres解析器
如果您真的想:
CREATE TABLE dual();
PostgreSQL具有隐式双表,只需编写:
SELECT NOW ()
Output:
2019-05-17 13:56:51.120277+02
如果Oracle PL/SQL代码引用的是双
表您可以创建自己的双表:
CREATE TABLE moldb.public.dual (
column1 bool);
不要忘记在“dual”表中插入一行,这样“Select1fromDual”就可以工作了 如果我一列需要多行怎么办?@Surya:如果你想要多行,你可以打电话给我