我在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 Persistence Services - 2.5.2.v20140319-9ad6abd):org.eclipse.persistence.exceptions.DatabaseException内部 例外:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近  INTERVAL,LAYER,NODE,PARENT,PXVALUE,SCHEMA,SDATE)价值观 (' Gen',' AH',' Lay' at line 1错误代码:1064电话:INSERT INTO detected_issues(GENERATION,INTERVAL,LAYER,NODE,PARENT,PXVALUE, SCHEMA,SDATE)VALUES(?,?,?,?,?,?,?,?)bind => [8个参数 约束