一个表不是由toplink创建的



我觉得不得不问这个真的很愚蠢。但是我已经查看了 4 个小时的代码,但无法弄清楚。我已经多次重建数据库,但无法使其正常工作。由于某种原因,我的一个表未创建。我有 4 张桌子游戏、开发人员、游戏图像和用户。用户未被创建,但另一个正在完美创建并正常工作。我确定这是一个愚蠢的错误,但我只是没有看到它。如果有人能告诉我为什么会发生这种情况,那就太好了。我正在使用顶链

这是我的代码:

持久性 XML:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="GameDatabasePU" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>domainmodel.Game</class>
<class>domainmodel.GameImage</class>
<class>domainmodel.Developer</class>
<class>domainmodel.User</class>
<properties>
  <property name="toplink.jdbc.user" value="app"/>
  <property name="toplink.jdbc.password" value="app"/>
  <property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/Gamedatabase;create=true"/>
  <property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
  <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>
</persistence>

用户:

@Entity
public class User {
    @Id
    private String username;
    private String password;
    private String firstName;
    private String surname;
    public User() {
    }
    public User(String naam, String pas){
        setUsername(naam);
        setPassword(pas);
    }
    public User(String naam, String pas, String firstName, String surname){
        setUsername(naam);
        setPassword(pas);
        setFirstName(firstName);
        setSurname(surname);
    }
    public void setUsername(String naam){
        this.username=naam;
    }
    //methods
}

不是真正的答案,但更多的是一些缩小问题范围的技巧。

1)尝试从持久性中删除所有其他类.xml(注释掉其他类的注释)

也许问题出在另一个类中,并且输出具有误导性。

2) 尝试将调试/输出级别设置为另一个级别(调试、精细、精细),并让 JPA 提供程序公开查询。

对于 TopLink,我认为将其添加到您的属性部分将解决问题:

<property name="toplink.logging.level" value="FINEST" />

3) 您使用的是哪个数据库?MySql, PostgreSQL, HSQL, SQL-server?

有些数据库(完全)不支持某些内容。

4)应该无关紧要,但无论如何;

@Table(name = "user")@Table(name = "usera")批注您的 User 类,这将确保表名不是问题。

相关内容

  • 没有找到相关文章

最新更新