Я чувствую себя действительно глупым, чтобы спросить об этом. Но я смотрел на свой код в течение 4 часов и не могу понять это. Я несколько раз перестраиваю свою базу данных и не могу заставить ее работать. Одна из моих таблиц по какой-то причине не создается. У меня есть 4 стола игры, разработчик, gameimage и пользователь. Пользователь не создается, а другой создается отлично и работает. Я уверен, что это глупая ошибка, но я просто этого не вижу. Если бы кто-нибудь мог просто сказать мне, почему это может произойти, это было бы здорово. Я использую TopLinkОдин стол не создается toplink
Вот мой код:
сохранение 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
}
Сумасшедший ... Я видел эту проблему дважды сегодня ([Hibernate не создал таблицу в Db, но показывал оператор создания] (http://stackoverflow.com/questions/10919844/hibernate-has-not-created- table-in-db-but-show-create-statement)) ... возможно, причина/решение могут быть связаны. –
Я не думаю, что это та же проблема:/ –
1) Если вы просто добавите autogenereated int/long Id - она начнет работать? 2) будет ли он создавать таблицу, если вы вручную сбросите ее первым? – esej