本节列出了与 Java Persistence API 相关的已知问题和相应的解决方案。
查询编译器不会检查 Java Persistence 语言的规范一章中定义的所有规则。特别是,它不检查以下各项:
函数参数的类型兼容性。
运算符、逻辑运算符和比较运算符的操作数的类型兼容性。
SELECT 子句对 ORDER BY 查询的要求。
无效的查询可能会进行编译,但可能会导致在运行时出现 SQLException。或者也可能出现以下情况:基础数据库比较宽松且支持 SQL,但在其他数据库上执行相同查询时会失败,并出现 SQLException。
手动验证上述条件。
有关更多信息,请参见 https://glassfish.dev.java.net/issues/show_bug.cgi?id=550。
手动验证查询中的哪些内容是错误的。
使用不同的类名称。
有关更多信息,请参见 https://glassfish.dev.java.net/issues/show_bug.cgi?id=558。
请勿明确地列出 MappedSuperclass。
通过使用 Java 包装对象类型,映射到可为 null 的数据库列。