gpt4 book ai didi

java - SQL 和 JPA 错误

转载 作者:行者123 更新时间:2023-11-29 04:16:33 25 4
gpt4 key购买 nike

我一直在努力解决这个问题,但一直找不到导致此错误的问题。找不到任何以前使用 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

不管我怎么改。

最佳答案

如果没有尝试过,我会假设 SQL 关键字“字符”是这里的问题。您将一个变量/字段命名为“字符”——为了使其正常工作,您需要为该变量指定一个不同的名称,这不是 SQL 关键字。另一种选择是使用 @Column(name="Other_than_character") private String character;

注释声明

关于java - SQL 和 JPA 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42737537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com