【发布时间】:2011-11-22 20:41:20
【问题描述】:
我有一个表 [Name Table] 和一个关联的表 workSchedule。我正在使用 Hibernate 3.6.7.Final 来生成我的查询。结果是:
update Personnel.dbo.[Name Table] set workSchedule=? where [Name IRC]=?
抛出异常:
11-22@10:30:41 WARN [] JDBCExceptionReporter - SQL 错误:8624,SQLState:S0001
11-22@10:30:41 错误 [] JDBCExceptionReporter - 内部查询处理器错误:查询处理器无法生成查询计划。如需更多信息,请联系客户支持服务。
[Name Table].workSchedule 是这样定义的外键:
ALTER TABLE [Name Table] ADD workSchedule VARCHAR(34)
FOREIGN KEY REFERENCES workSchedule(id);
workSchedule.id 是这样定义的:
CREATE TABLE workSchedule
( /* format = letter-days-lunch EX: A-5-1 */
id AS CASE lunch
WHEN 1 THEN scheduleLetter+'-'+CONVERT(VARCHAR, scheduleDays)+'-'+'1'
ELSE scheduleLetter+'-'+CONVERT(VARCHAR, scheduleDays)+'-'+'5'
END PERSISTED NOT NULL,
/* rest of table follows */
);
如果我将上面的更新查询复制粘贴到 SSMS 中并直接为 ?s 插入值,它就可以工作。
更新:
我刚刚尝试将表 WorkSchedule 的 PRIMARY KEY 更改为 INT IDENTITY 列。我离开重命名id 转移,否则将其作为列留在桌子上。我还更新了 POJO 和 .hbm.xml 文件。更新查询仍然失败,但有同样的异常。
【问题讨论】:
标签: java sql-server hibernate