大家不用看了!
找到原因了,在表B中通过pl/sql developer插入数据之后,没有commit
,导致代码一直查不出来。。。。
这实在是。。。
重要的事情记三遍,pl/sql developer中执行dml语句,一定要commit
或者rollback
才行.
pl/sql developer中执行dml语句,一定要commit
或者rollback
才行.
pl/sql developer中执行dml语句,一定要commit
或者rollback
才行.
pl/sql developer中执行dml语句,一定要commit
或者rollback
才行.
表 A
id | a | b | c |
---|---|---|---|
110 | Atest | as | dd |
111 | Btest | as | dd |
112 | Btest | as | dd |
表 B
id | a |
---|---|
111 | Btest |
视图:
CREATE OR REPLACE VIEW V_A AS
SELECT t1.* FROM A t1
WHERE t1.a_CODE LIKE 'A%'
UNION
SELECT t2.* FROM ORDER_USER t2,WHITE_ORDER_USER WU WHERE t2.ID=WU.ID;
最后在mybatis中查询V_A:
select id,a,b,c from V_A where id=#{id};
意思是:查询所有表A中字段a以A开头的所有记录,并且表B中存储了一些表A中的记录,但是表B中字段a未必以A开头(也就是表B相当于一个白名单)。
log中可以看到sql语句为select id,a,b,c from V_A where id=?
,参数传111或者110,
结果,java代码中可以正常查出记录110,但是查不出记录111。
而在pl/sql developer中可以直接用sql查询出两条记录。
请问有没有遇到过这种问题的。