首页 新闻 会员 周边

关于spring data jpa 注解

0
悬赏园豆:50 [已解决问题] 解决于 2016-04-18 17:22

@Query("select count(1) from User")
    public Long totalUser(@Param("sql") String sql);

 

现在是查询所有用户信息,我现在想根据条件来查询,怎么通过注解表示呢?

jwchen的主页 jwchen | 初学一级 | 园豆:27
提问于:2016-04-13 16:55
< >
分享
最佳答案
0

以用户为例,用户名为条件

@Query("select u from User u where username like :un")  
public List<User> findByUsername(@Param("un") String username);  

List<User> users = userDao.findByUsername("%a"); 

 

收获园豆:50
小光 | 小虾三级 |园豆:1766 | 2016-04-13 17:25

我现在需要通过roleId来进行查询,类型是Integer,如果正常传入一个Id的话可以查询,如果不要roleId这个条件,查询所有怎么实现呢?

jwchen | 园豆:27 (初学一级) | 2016-04-13 23:24

@Garvan: 不管你要不要roleid这个条件,都把roleid这个参数传进来,当你不想要roleid这个条件,传个0或者默认值null,判断一下roleid的值就行啦,roleid为0或者null查询所有,否则条件查询

小光 | 园豆:1766 (小虾三级) | 2016-04-14 09:26

@博客园乄小光: 

比如你上面说的例子:

@Query("select u from User u where roleId like :un")
public List<User> findByUsername(@Param("un") Integer roleId); 

List<User> users = userDao.findByRoleId("1");

sql语句为:select u from User u where roleId like 1;

但是现在前端没有选择这个查询条件的话,我给它个0或者null

sql语句为:select u from User u where roleId like 0或者null;

就查不出来数据了
jwchen | 园豆:27 (初学一级) | 2016-04-14 11:28

@Garvan: 还是没明白我的意思,

如果roleid为0或null:select u from User u

否则:select u from User u where roleId like 1

小光 | 园豆:1766 (小虾三级) | 2016-04-14 11:54

@博客园乄小光: 

 

那@query("") 里面怎样使用动态的语句啊.

jwchen | 园豆:27 (初学一级) | 2016-04-14 11:56

@Garvan: 我在mybatis里面用过,注解没用过,都是配置文件,用逻辑控制也行吧

小光 | 园豆:1766 (小虾三级) | 2016-04-14 11:57

@博客园乄小光: 

 

mybatis 里面我也知道.. 就是在这上面不知道怎么控制

jwchen | 园豆:27 (初学一级) | 2016-04-14 11:58

@Garvan: 做项目都是配置文件,不知道注解怎么控制、、、

小光 | 园豆:1766 (小虾三级) | 2016-04-14 12:01

@Garvan: 前台传值的时候进行判断值,写两个方法两个sql,判断后访问不同的方法,这样行不行

小光 | 园豆:1766 (小虾三级) | 2016-04-14 12:06

@博客园乄小光: 

 

注解还是没找到方法,用Specification解决了。还是谢谢你!

jwchen | 园豆:27 (初学一级) | 2016-04-18 17:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册