私はこれを理解しようとしていますが、このエラーの原因となった問題を見つけることができませんでした。 JPAを使用した以前の質問を見つけることができず、同じエラーが発生しました。これは、データベースにエンティティを永続化されたメインクラスです:SQLとJPAのエラー
package com.brandonemerson;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] args) {
ComicBook comicBook =new ComicBook("Moon Knight Meets Spiderman", "Moon Knight", "Marvel Comics", 1975);
EntityManagerFactory emf =Persistence.createEntityManagerFactory("thePersistenceUnit");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
em.persist(comicBook);
tx.commit();
em.close();
emf.close();
}
}
そして、これは永続化されているエンティティです:
package com.brandonemerson;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class ComicBook {
@Id @GeneratedValue
private Long id;
private String title;
private String character;
private String publisher;
private Integer year;
public ComicBook(){
}
public ComicBook(String title, String character, String publisher, int year){
setTitle(title);
setCharacter(character);
setPublisher(publisher);
setYear(year);
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCharacter() {
return character;
}
public void setCharacter(String character) {
this.character = character;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public int getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
}
私は以下のエラーを取得しておいてください。
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER, PUBLISHER, TITLE, YEAR) VALUES (1651, 'Moon Knight', 'Marvel Comics',' at line 1
私が何を変更しても。
は、あなたのJPAプロバイダもキーワードではない、自動見積もりテーブル/列識別子を行うようです。いくつかのJPAプロバイダはあなたのためにそれをやっていますので、面倒なことはありません –