Outils pour utilisateurs

Outils du site


ide:eclipse:jpa

Problèmes

Schema "XXXX" cannot be resolved for table "YYYY"

Possibilité 1

Il faut générer les tables depuis les entités.

Clique-droit sur le projet, JPA Tools, Generate Tables from Entities.

Error de schéma

Pour que cela marche, il faut que dans le persistence.xml la propriété suivante existe :

<property name="javax.persistence.schema-generation.database.action" value="create"/>

Possibilité 2

Le schéma n'est pas le bon.

Il faut afficher Data Source Explorer depuis Window, Show View, Other…

Error de schéma 2 1Error de schéma 2 2Error de schéma 2 3

Et ajouter en déclaration de la classe le nom du schéma

@Entity
@Table(schema = "DEFAULT")
public class Position {

The value for annotation attribute SecondaryTable.pkJoinColumns must be some @javax.persistence.PrimaryKeyJoinColumn annotation

@SecondaryTables({
  @SecondaryTable(name="PERSO_SECU", pkJoinColumns=@PrimaryKeyJoinColumn(referencedColumnName="ID")),  
  @SecondaryTable(name="PERSO_BANQUE", pkJoinColumns=@PrimaryKeyJoinColumn(referencedColumnName="ID"))
})

Il manque

import javax.persistence.PrimaryKeyJoinColumn;

@OneToOne or @ManyToOne on XXX references an unknown entity: YYY

Hibernate :

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on XXX references an unknown entity: YYY
  at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)

La classe YYY n'est pas dans le fichier hibernate.cfg.xml

<hibernate-configuration>
  <session-factory>
    <mapping class="YYY" />
  </session-factory>
</hibernate-configuration>

Caused by: java.sql.SQLException: Field 'id' doesn't have a default value

org.hibernate.exception.GenericJDBCException: could not execute statement
  at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)
  at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
  at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
  at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:207)
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)

Le champ id de la table ne possède pas l'attribut auto-incrémentation.

ide/eclipse/jpa.txt · Dernière modification : 2020/05/10 23:59 de root