J'ai un problème lors de l'exécution d'une instruction avec JPA/Hibernate.Hibernate: Erreur: Vous avez une erreur dans votre syntaxe SQL
J'essaie d'insérer un enregistrement. La déclaration sera imprimé à la console:
Hibernate: insert into loan (amount, auto_renew, billed, billing_date, close_date, comment, currency_id, date_offer_added, duration, earned, interest_abs, loan_ext_id, open_date, operator_fee_abs, operator_fees, platform_fee_abs, platform_fees, range, rate, source_systems_id, user_id) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
09:32:56.396 [default] [XNIO-2 task-6] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 1064, SQLState: 42000
09:32:56.398 [default] [XNIO-2 task-6] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'range, rate, source_systems_id, user_id) values (0.43967500, 0, 0, null, '2017-0' at line 1
Ma configuration de DB ressemble à ceci:
datasource:
# Local MYSQL DB
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/coinlender?useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password:
jpa:
database-platform: org.hibernate.dialect.MariaDBDialect
database: MYSQL
show-sql: true
Comment puis-je me rapprocher de la question? Je ne peux pas trouver la cause de l'erreur.
Quelqu'un peut-il m'aider s'il vous plaît?
Cordialement, David
Malheureusement, pour vous, Vous avez choisi d'utiliser un fournisseur JPA qui ne nomme pas automatiquement les identifiants SQL. D'autres fournisseurs JPA peuvent le faire pour vous, mais pas le vôtre, donc vous devez soit changer vos identifiants pour ne pas être des mots-clés SQL !!!, ou vous devez les citer en utilisant '@ Column' etc !!! –
@NeilStockton Hibernate le fait, si vous utilisez HQL. Mais cela ressemble à une requête SQL et aucun fournisseur JPA n'échappe à quoi que ce soit – Jens