我用dao.func2执行数据库内置函数,然后出现了极其神奇的事情.........
代码如下:
/**
* 给代理加总金额
* @param users
* @param agent
*/
public void addAgentWallet(List<UserAccount> users,Agent agent){
for (int j = 0; j < users.size(); j++) {
Object sum = dao().func2(Order.TABLE_NAME, "sum", Order.TOTAL_PRICE, Cnd.where(Order.USER_ACCOUNT, "=", users.get(j).getAccount()).and(Order.OSTATUS,"=", OrderConfig.SUCCESS));
if(sum == null){
sum = 0;
}
BigDecimal bigDecimal = new BigDecimal(String.valueOf(sum));
agent.setWallet(agent.getWallet().add(bigDecimal));
System.out.println(agent.getWallet().toString());
}
}
我dao.func2哪一行执行后有时候是null,有时候有值,我断点跟 了之后发现sql放到工具里执行是有值的但是返回的就是null,但是有时候就正常 ,好神奇.....
[DEBUG] 09:57:31.684 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT sum(total_price) FROM orderinfo WHERE user_account=? AND ostatus=?
| 1 | 2 |
|-------------|-----|
| 15065728696 | 已完成 |
For example:> "SELECT sum(total_price) FROM orderinfo WHERE user_account='15065728696' AND ostatus='已完成'"
5090.0
[DEBUG] 10:02:20.546 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM agent WHERE parent_id=? AND agent_type=?
| 1 | 2 |
|----|----|
| 64 | 代理 |
For example:> "SELECT * FROM agent WHERE parent_id=64 AND agent_type='代理'"
[DEBUG] 10:02:20.567 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM user_account WHERE parent=?
| 1 |
|-------------|
| 15615086991 |
For example:> "SELECT * FROM user_account WHERE parent='15615086991'"
[DEBUG] 10:02:21.235 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM user_account WHERE parent=?
| 1 |
|-------------|
| 18853547567 |
For example:> "SELECT * FROM user_account WHERE parent='18853547567'"
[DEBUG] 10:02:21.939 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM user_account WHERE parent=?
| 1 |
|-------------|
| 15065728696 |
For example:> "SELECT * FROM user_account WHERE parent='15065728696'"
[DEBUG] 10:02:23.902 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM user_account WHERE parent=?
| 1 |
|-------------|
| 13858402662 |
For example:> "SELECT * FROM user_account WHERE parent='13858402662'"
我都发正式包了发现查的不对才发现这个怪问题,请问这是什么原因撒.....