gpt4 book ai didi

java - 为什么 hibernate 只创建第一个表?

转载 作者:行者123 更新时间:2023-11-30 02:28:46 25 4
gpt4 key购买 nike

我想使用createNativeQuery创建多个表,但这会导致hibernate仅创建第一个表。如果我将 SQL 粘贴复制到 SQL 编辑器,它就可以正常工作。这是我的代码:

String sql = "CREATE TABLE \"languages\"("+
"language_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+
"language_name VARCHAR(50) NOT NULL,"+
"language_code VARCHAR(3) NOT NULL);"+

"CREATE TABLE \"accountant\"("+
"accountant_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+
"name VARCHAR(50) NOT NULL,"+
"surname VARCHAR(50) NOT NULL,"+
"mail VARCHAR(100) NOT NULL,"+
"avatar VARCHAR(150),"+
"phone VARCHAR(16),"+
"interface_lang_id INTEGER NOT NULL,"+
"FOREIGN KEY(interface_lang_id) REFERENCES languages(language_id) ON DELETE RESTRICT);"+

"CREATE TABLE \"currency\"("+
"currency_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+
"name VARCHAR(25) NOT NULL,"+
"symbol VARCHAR(5) NOT NULL);";
session.createNativeQuery(sql).executeUpdate();

最佳答案

createNativeQuery()用于执行单个 native SQL 语句,而不是连续执行多个语句。

在您的情况下,您尝试使用同一调用执行 3 个不同的查询,这就是导致它在创建第一个表后停止的原因。

如果您检查documentation 它说:

Query createNativeQuery(String sqlString)

Create an instance of Query for executing a native SQL statement,e.g., for update or delete.

解决方案:

您需要在不同的 createNativeQuery 调用中分离这 3 个查询,以便可以独立地解释它们。

关于java - 为什么 hibernate 只创建第一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com