java - 本地 H2 服务器 + hibernate : existing database is not visible

标签 java hibernate jdbc orm h2

我创建了一个表:

CREATE TABLE `Category` (
`id`       IDENTITY PRIMARY KEY,
`category` VARCHAR(512) NOT NULL
);

并尝试使用 URL 从中获取数据:

jdbc.url=jdbc:h2:~/test

它在管理员控制台上运行良好。
但是“未找到表“CATEGORY”;”在从提到的 URL 使用 JDBC 访问表期间发生。

数据库属性:

jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:~/test
jdbc.username=sa
jdbc.password=

数据源bean.xml:

 <bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="url" value="${jdbc.url}"/>
</bean>

如何解决这个问题?

最佳答案

您不应手动引用名称。让 Hibernate 为你做,只需添加此属性 hibernate.globally_quoted_identifiers=true 来引用所有数据库标识符。从 3.5 版开始,它在 Hibernate 中可用。

关于java - 本地 H2 服务器 + hibernate : existing database is not visible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151817/

相关文章:

java - 无法使用@value 或使用自动连接到环境从属性文件中读取值

java - hibernate java.sql.SQLException : No value specified for parameter 1

java - JUnit 5对没有SpringBootApplication的子项目进行测试

java - 重用 String.format 中的参数?

java - 在 Hibernate 中将实体内的实体与持久化上下文分离

hibernate - 对象引用未保存的 transient 实例 - 在刷新 Hibernate 之前保存 transient 实例

java - 如何以通用方式获取 SQL 的行分隔符?

java - 参数 @x 没有为存储过程定义...使用 MS_SQL JDBC

java - JDBC 连接被对等方关闭(奇怪)

java - 当尝试在静态方法调用中模拟静态方法调用时,Powermock 会调用初始方法