查询问题卡了一个多个小时,特来求助 。
两张表 : User 表 和 Order 表。 User 有多个 Order。 Order 只能有一个 User。
代码如下图 : User 表 :
Order 表 :
需求 : 根据 User 的 id 返回 User 对象 。
我使用的方法 : 直接通过 jpa 查询
Optional<User> optional = userDao.findById(userId);
遇到的问题 : 查询过程,直接报错 :
Hibernate show sql :
select user0_.id as id1_1_0_,
user0_.age as age2_1_0_,
user0_.name as name3_1_0_, user0_.sex as sex4_1_0_,
customer1_.user_id as user_id2_0_1_,
customer1_.order_id as order_id1_0_1_,
customer1_.order_id as order_id1_0_2_,
customer1_.user_id as user_id2_0_2_ from user user0_ left outer join order customer1_ on user0_.id=customer1_.user_id where user0_.id=?
> 1064 - 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 'order customer1_ on user0_.id=customer1_.user_id where user0_.id=?' at line 7
> Time: 0s
1
allen9527 2018-10-18 18:29:23 +08:00
left outer join order 关键字了?
|
2
moresteam 2018-10-18 18:35:03 +08:00 via Android
楼主可以表述的专业点吗。。
|
3
moshao6 2018-10-18 18:38:10 +08:00
order 本身就是关键字 怎么会起这样的表名
|
4
liprais 2018-10-18 18:40:18 +08:00
保留字做表名,佩服
|
5
zdt3476 2018-10-18 18:58:05 +08:00
order 做表名导致的。。。 看下是否能用反引号包起来,`Order` 或者是换个名字
|
6
oyosc 2018-10-18 19:01:04 +08:00
楼主新手?
|
7
wuwuwu5 2018-10-18 19:04:34 +08:00
换个表名,我以前还用 group 做过表名😢。
|
8
metrxqin 2018-10-18 19:17:23 +08:00
外键约束已经被业务唾弃。
|
9
littleylv 2018-10-18 19:20:02 +08:00
我一般表名用复数
users orders 就不会与关键字冲突 或者你的 sql 应该用 `user` 、 `order` |
11
PythonAnswer 2018-10-18 19:40:45 +08:00 via iPhone
加下划线 这样能强迫自己记住关键字
|
12
kslr 2018-10-18 19:54:20 +08:00 via Android
复数哦同志
|
13
947211232 2018-10-19 08:56:31 +08:00
|
14
nekoneko 2018-10-19 08:57:32 +08:00
一般没个几年经验不敢用 JPA 或者 Hibernate 的映射
|
15
HarryQu OP |