ide:eclipse:jpa
Table des matières
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
.
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…
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