我正在尝试使用hql将数据插入数据库。 我的代码是
try {
String hql = "insert into ErrorLog(className,method,lineNo,error) "
+ "values(:cn,:me,:ln,:err)";
Query query = session.createQuery(hql);
query.setParameter("cn", className);
query.setParameter("me", methodName);
query.setParameter("ln", lineNo);
query.setParameter("err", error);
int res = query.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Not able to insert data");
}
无法插入数据。
答案 0 :(得分:2)
HQL并不突出地用于在表中插入值。为此,您需要使用Hibernate的save() , saveOrUpdate()
方法。
HQL仅支持从另一个表插入。
他们有以下语法。
INSERT INTO EntityName properties_list select_statement.
他们没有任何东西可以仅仅输入价值观。所以以下语法无效
INSERT INTO EntityName properties_list values ( : inputvalues ).
您需要相应地更改方法。
答案 1 :(得分:0)
这是你用Hibernate插入记录的方法:
您映射所有字段
您创建一个新的ErrorLog实体,然后您可以调用:
ErrorLog errorLog = new ErrorLog(); errorLog.setClassName(类名); ....
答案 2 :(得分:-2)
使用由save()
对象调用的persist()
或Session
方法。并在这些方法中传递DTO类的对象;