我正在使用 EJB 3.0 开发一个 Web 项目,每当 EclipseLink 尝试与数据库交互时,它都会说我正在使用的模式不存在(它确实存在)。
我从 GlassFish 2.1 中得到了一个巨大的、无用的堆栈跟踪,它的开头是:
EclipseLink, version: Eclipse Persistence Services - 1.1.0.r3639-SNAPSHOT
file:/C:/Documents%20and%20Settings/nick/.personalDomain/personalDomain/applications/j2ee-apps/ScienceEar/lib/ScienceJpa-1.0-SNAPSHOT.jar-SciencePU login successful
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 1.1.0.r3639-SNAPSHOT): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Schema 'BEAMLINE' does not exist
Error Code: -1
Call: SELECT exp_id, fac_family, public_viewable, group_name, created_ts, status, exp_num, date_received, exp_type, title, updated_ts, text_only_title, experiment_url, proposed_eec, start_of_prep FROM beamline.eec_exp_toc
Query: ReadAllQuery(name="Experiment.findAll" referenceClass=Experiment sql="SELECT exp_id, fac_family, public_viewable, group_name, created_ts, status, exp_num, date_received, exp_type, title, updated_ts, text_only_title, experiment_url, proposed_eec, start_of_prep FROM beamline.eec_exp_toc")
我可以发布更多的堆栈跟踪,但这真的很无聊。关于为什么 EclipseLink 看不到架构的任何想法?
更多信息:“beamline”是我使用的唯一模式。堆栈跟踪中的 SQL 是由 NamedQuery 生成的,这是我的程序中与该数据库的第一次交互(以及第一次 JPA 交互)。