Mysql 数据持久化中的JPA错误

Mysql 数据持久化中的JPA错误,mysql,jakarta-ee,jpa,glassfish-4,Mysql,Jakarta Ee,Jpa,Glassfish 4,我在MySQL中有一个简单的表,我想通过JPA将数据保存在其中,但我在下面得到一个错误描述,这里出了什么问题 该应用程序托管在GlassFish 4中,使用MySQL 5和EJB 请考虑下表的定义 CREATE TABLE `myproject`.`detected_issues` ( `sdate` datetime NOT NULL default '0000-00-00 00:00:00', `pxvalue` double NOT NULL default '0', `gener

我在MySQL中有一个简单的表,我想通过JPA将数据保存在其中,但我在下面得到一个错误描述,这里出了什么问题

该应用程序托管在GlassFish 4中,使用MySQL 5和EJB 请考虑下表的定义

CREATE TABLE  `myproject`.`detected_issues` (
 `sdate` datetime NOT NULL default '0000-00-00 00:00:00',
 `pxvalue` double NOT NULL default '0',
 `generation` varchar(6) NOT NULL ,
 `schema` varchar(30) NOT NULL ,
 `node` varchar(100) NOT NULL,
 `parent` varchar(100) NOT NULL ,
 `layer` varchar(30) NOT NULL ,
 `interval` varchar(5) NOT NULL ,
 `id` int(10) unsigned NOT NULL auto_increment ,
  PRIMARY KEY  (`id`),
 UNIQUE KEY `detected_issues_UIDX`    (`sdate`,`node`,`generation`,`schema`,`layer`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
这是实体类

@Entity
@Table(name="detected_issues")
@NamedQuery(name="DetectedIssue.findAll", query="SELECT d FROM DetectedIssue d")
public class DetectedIssue implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

private String generation;

private String interval;

private String layer;

private String node;

private String parent;

private double pxvalue;

private String schema;

@Temporal(TemporalType.TIMESTAMP)
private Date sdate;

public DetectedIssue() {
}
}
使用下面的代码,我得到了下面描述的错误

 @PersistenceContext(unitName = "ADProjectEJB")
    private EntityManager em;
DetectedIssue issuet = new DetectedIssue();
    issuet.setNode("Node");
    issuet.setParent("Parent");
    issuet.setPxvalue(0.5d);
    issuet.setGeneration("Gen");
    issuet.setSchema("HU");
    issuet.setLayer("Layer");
    issuet.setInterval("AH");
    issuet.setSdate(Calendar.getInstance().getTime());      
    System.out.println(issuet.toString());
    em.persist(issuet);
    em.flush();
错误

原因:异常[EclipseLink-4002]Eclipse持久性服务 -2.5.2.v20140319-9ad6abd:org.eclipse.persistence.exceptions.DatabaseException Internal 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “近”间隔、层、节点、父级、PXVALUE、架构、SDATE值 第1行的“Gen”、“AH”、“Lay”错误代码:1064调用:插入到 检测到的_问题生成、间隔、层、节点、父级、PXVALUE、, 模式,SDATE值?bind=>[8个参数 绑定的]


间隔是一个保留字问题,需要在原始中使用回勾?您在创建时回勾,但在插入时没有回勾。请参阅这里有一个更好的参考:Tanks,回勾解决了,或使用JPA实现自动为您引用关键字。。。