通过hibernate将非常基本的列值保存到我的订单表
我试图通过hibernate将非常基本的列值保存到订单表中。列为客户编号,[在此处输入图像描述][1]为整数类型。我已创建了我的订单类并包含注释。不确定我的SQL中的语法错误在哪里。请帮忙 主类文件看起来不错。 数据库连接成功! 不确定当我试图保存对象时,它抛出了一个SQL语法错误 谢谢!请查找我的POJO和相关映射/注释 这是我的订单类:import javax.persistence.Column通过hibernate将非常基本的列值保存到我的订单表,hibernate,object,Hibernate,Object,我试图通过hibernate将非常基本的列值保存到订单表中。列为客户编号,[在此处输入图像描述][1]为整数类型。我已创建了我的订单类并包含注释。不确定我的SQL中的语法错误在哪里。请帮忙 主类文件看起来不错。 数据库连接成功! 不确定当我试图保存对象时,它抛出了一个SQL语法错误 谢谢!请查找我的POJO和相关映射/注释 这是我的订单类:import javax.persistence.Column import javax.persistence.Entity; import javax.p
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="ORDER")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="Order_no")
private int _OrderNo;
@Column(name="Customer_no")
private int _CustomerNo;
public Order() {
}
public Order(int CustomerNo) {
this._CustomerNo = CustomerNo;
}
public int get_OrderNo() {
return _OrderNo;
}
public void set_OrderNo(int OrderNo) {
this._OrderNo = OrderNo;
}
public int get_CustomerNo() {
return _CustomerNo;
}
public void set_CustomerNo(int CustomerNo) {
this._CustomerNo = CustomerNo;
}
@Override
public String toString() {
return "Order [_OrderNo=" + _OrderNo + ", _CustomerNo=" + _CustomerNo + "]";
}
}
这是我的实际对象保存文件
public class CreateOrder {
public static void main(String[] args) {
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Order.class)
.buildSessionFactory();
Session session = factory.getCurrentSession();
try {
System.out.println("Creating the Order Object.......");
Order tempOrder = new Order(123);
session.beginTransaction();
System.out.println("Saving the Order ");
session.save(tempOrder);
session.getTransaction().commit();
System.out.println("Done!!");
}
finally {
factory.close();
}
}
}
问题在于您的表nam
@Table(name=“ORDER”)
ORDER
是MySQL中的保留关键字(您可能听说过ORDER BY
?),因此它不能直接用作INSERT
中的表名。最简单的方法是将表名更改为其他名称,例如ORDERS
一种解决方法是在表名中包含引号,如下所示
@Table(name="`ORDER`")
还是JPA2
@Table(name="\"ORDER\"")
但这些可能会破坏RDMBS的兼容性。IMHO表格应以复数形式命名 Hibernate生成一个失败的查询。可能您的POJO到表的映射搞砸了。1)不要粘贴代码的图像,而是实际的代码。2) 不要拍打stacktrace的图像,但实际的stacktrace3)粘贴hibernate.cfg 4)不要在注释中添加代码,而是编辑你的问题5)这里没有任何内容)stacktrace在哪里?@ventsyv我的类到DB表的映射,如你所见,看起来不错。有什么想法吗?
@Table(name="`ORDER`")
@Table(name="\"ORDER\"")