samperson1997 / samperson1997.github.io

samperson1997.github.io
1 stars 0 forks source link

J2EE第6次作业的坑 (JPA技术) | Blog of Samperson #12

Open samperson1997 opened 6 years ago

samperson1997 commented 6 years ago

https://samperson1997.github.io/2018/01/08/J2EE6/

SITUSX commented 6 years ago
  1. maven项目里配置文件persistence.xml放在src/resources/META-INF/下,直接放在resources下找不到persistent-unit。
  2. 使用EntityFactory的find方法时,后面那个参数是数据库中对应表格的ID,如果表格没有ID应使用merge方法。
  3. 使用EntityFactory的createQuery时,传入的sql语句中使用的属性名(例上面的o.userID)应与对应model(例上面的model.Order)内定义的变量名(即Order中的private int usrID)一样,而不应该与数据库中表格的属性名一样。 //以上是我踩到的坑
SITUSX commented 6 years ago

因为一开始登录用的是用户名不是ID,一直报错,第二点我也是在网上查到的,没有使用(merge感觉超麻烦,我强行修改到使用ID登录🙃)

SITUSX commented 6 years ago

第三点意思是,如果model类定义的变量名与数据库表格里对应列名不一致,sql语句以model类定义的变量名为准。 我数据库里使用的是userid,model类里为了命名规范用的是private int userID,所以sql里必须使用userID。

samperson1997 commented 6 years ago

@SITUSX 感谢补充踩坑记录!之前帮别的同学debug的时候提到过sql语句里变量名必须与model类定义的变量名相同的问题,还是感觉直接写mysql语句比较舒服😂