Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将成员添加到类后,JPA会因SQLSyntaxErrorException崩溃。如何删除旧类的跟踪?_Java_Jpa_Netbeans_Persistence_Eclipselink - Fatal编程技术网

Java 将成员添加到类后,JPA会因SQLSyntaxErrorException崩溃。如何删除旧类的跟踪?

Java 将成员添加到类后,JPA会因SQLSyntaxErrorException崩溃。如何删除旧类的跟踪?,java,jpa,netbeans,persistence,eclipselink,Java,Jpa,Netbeans,Persistence,Eclipselink,我在Netbeans中创建了这个项目,这是我知道的唯一访问它的方法。我似乎找不到存储对象的数据库,因此无法删除它们。事实上,我认为最好是每次我重启glassfish时它都会删除所有内容。我知道更改类会导致此类问题,但我不知道如何删除有关类的旧版本的信息。到目前为止,我一直试图通过每次类名更改时重构类名来解决这个问题,但我已经用完了创造性的名称 例外情况: javax.servlet.ServletException: Exception [EclipseLink-4002] (Eclipse P

我在Netbeans中创建了这个项目,这是我知道的唯一访问它的方法。我似乎找不到存储对象的数据库,因此无法删除它们。事实上,我认为最好是每次我重启glassfish时它都会删除所有内容。我知道更改类会导致此类问题,但我不知道如何删除有关类的旧版本的信息。到目前为止,我一直试图通过每次类名更改时重构类名来解决这个问题,但我已经用完了创造性的名称

例外情况:

javax.servlet.ServletException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Column 'CURRENTDAY' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement then 'CURRENTDAY' is not a column in the target table.
Error Code: -1
Call: SELECT ID, CURRENTDAY, INTERNAL_TIME_M, LASTTIME_M FROM FASTINTERNALCLOCK WHERE (ID = ?)
    bind => [1 parameter bound]
Query: ReadObjectQuery(name="readObject" referenceClass=FastInternalClock sql="SELECT ID, CURRENTDAY, INTERNAL_TIME_M, LASTTIME_M FROM FASTINTERNALCLOCK WHERE (ID = ?)")
我所做的是,FASTINTERNALCLOCK类的新CURRENTDAY成员不在它要查找的表中,可能是因为它正在基于该类的旧版本的表中查找,而该类的成员还不存在。如何删除此表,以便在考虑新成员的情况下重新创建它

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="webThermosPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/__default</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="eclipselink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

org.eclipse.persistence.jpa.PersistenceProvider
jdbc/_默认值
假的

您的SQL安装应该附带一个工作台程序,您可以使用该程序访问数据库,并在需要时从数据库中删除表和/或行

尝试使用DDL要删除的值“drop and create tables”和部署时的create tables。Glashfish在嵌入式derby数据库上设置了一个默认的数据源,如这里所述

事实上,我不知道这个数据库在哪里,也不知道如何连接到它,Netbeans只是在配置项目以使用JPA时为我创建的,它没有列在“数据库”树项中。我只有通过phpMyAdmin和linux命令行使用MySQL服务器的经验,现在我在Windows上,你能告诉我去哪里找吗?