gpt4 book ai didi

java - Hibernate 中的 MySQL 语法 - 出了什么问题?

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

我正在尝试在 HQL 中进行更新查询,但不起作用,我正在使用 MySQL5Dialect。在 Patient 类中,所有变量都像数据库中的列名称一样进行注释。这是一个代码:

Controller:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("clinic");
EntityManager entityManager = entityManagerFactory.createEntityManager();

entityManager.getTransaction().begin();

Patient patient = new Patient();

patient.setFirstName(infonameField.getText());
patient.setLastName(infolastNameField.getText());
patient.setGender(infogenderField.getText());
patient.setAge(infoageField.getText());
patient.setPhonenumber(infophonenumberField.getText());
patient.setAddress(infoadressField.getText());
patient.setDisease(infodiseaseField.getText());
patient.setCondition(infoconditionField.getText());
patient.setRoomtype(infoRoomType.getText());
patient.setRoomNumber(infoRoomNumber.getText());
patient.setDateregistration(infodataField.getText());
patient.setIdpatient(infoPIDField.getText());

Query query = entityManager.createQuery("UPDATE Patient set name = :name, lastname= :lastname,"
+ "gender= :gender, age= :age, phonenumber= :phonenumber, address= :address, disease= :disease,"
+ "condition= :condition, roomtype= :roomtype, roomnumber= :roomnumber, "
+ "dateregistration= :dateregistration WHERE idpatient= :idpatient");

query.setParameter("name", patient.getFirstName());
query.setParameter("lastname", patient.getLastName());
query.setParameter("gender", patient.getGender());
query.setParameter("age", patient.getAge());
query.setParameter("phonenumber", patient.getPhonenumber());
query.setParameter("address", patient.getAddress());
query.setParameter("disease", patient.getDisease());
query.setParameter("condition", patient.getCondition());
query.setParameter("roomtype", patient.getRoomtype());
query.setParameter("roomnumber", patient.getRoomNumber());
query.setParameter("dateregistration", patient.getDateregistration());
query.setParameter("idpatient", patient.getIdpatient());
query.executeUpdate();

entityManager.getTransaction().commit();

错误:

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 'condition='ewqewqeq', roomtype='standard', roomnumber='101', dateregistration='2' at line 1

最佳答案

单词conditionkeyword在 MySQL 中,这可能就是你的错误的原因。尝试修改它或用其他名称替换它。

编辑

阅读后this MySQL论坛帖子,只要转义就可以使用,如here提到的.

关于java - Hibernate 中的 MySQL 语法 - 出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35373767/

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