spring data jpa 查询部分属性
来源:互联网 发布:小众 知乎 编辑:程序博客网 时间:2024/06/16 06:13
两个方法:1、使用自定义的sql查询;2、封装一个类用于输出。
Dao:
@Servicepublic class OperatorServiceImpl implements OperatorService { @Autowired OperatorRepository operatorRepository; public OperatorRepository getOperatorRepository() { return operatorRepository; } private EntityManagerFactory emf; @PersistenceUnit public void setEntityManagerFactory(EntityManagerFactory emf) { this.emf = emf; }//方法1 @Override public List<Operator> list() throws Exception { EntityManager em = emf.createEntityManager(); Query query = em.createNamedQuery("getUsers"); List<Object[]> list = (List<Object[]>) query.getResultList(); List<Operator> operatorList = CastEntity.castEntity(list, Operator.class); em.close(); return operatorList;// Sort s = new Sort(Sort.Direction.DESC,"id");// return operatorRepository.findAll(); }//方法2: @Override public List<SimpleOperator> listOperator() { EntityManager em = emf.createEntityManager(); Query query = em.createQuery("select new com.jiapeng.xfw.server.normalClass.SimpleOperator(p.userId,p.name,p.userType) from Operator p order by p.userId desc"); List result = query.getResultList(); return result; }}
方法一的对应的Entity的写法:
@NamedNativeQueries({ @NamedNativeQuery(name = "getUsers", query = "select id,username,usertype from t_xfw_operator order by id desc", resultSetMapping = "usersMap")})@SqlResultSetMappings({ @SqlResultSetMapping(name = "usersMap", entities = {}, columns = { @ColumnResult(name = "id"), @ColumnResult(name="username"), @ColumnResult(name="usertype") })})@Entity@Table(name = "operator")public class Operator { @Id @GeneratedValue @Column(name = "id") private int userId; @Column( name = "userName", unique = true,nullable = false) private String name; @Column(name = "passWord") private String passWord; @Column(name = "userType") @Enumerated(value = EnumType.ORDINAL) private EnumOperatorType userType; @ManyToMany( fetch = FetchType.LAZY, targetEntity = com.jiapeng.xfw.server.entity.Rights.class) @JoinTable(name = "operator_rights", joinColumns = {@JoinColumn(name = "user_id",referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "right_id",referencedColumnName = "id")} ) @OrderBy("id") private List<Rights> rightses; public List<Rights> getRightses() { return rightses; } public void setRightses(List<Rights> rightses) { this.rightses = rightses; } public EnumOperatorType getUserType() { return userType; } public void setUserType(EnumOperatorType userType) { this.userType = userType; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } public Operator(){ super(); } public Operator(Integer id,String username){ super(); this.userId=id; this.name= username; }//这个构造函授必须 public Operator(Integer id,String username,Integer userType){ super(); this.userId=id; this.name= username; this.userType = EnumOperatorType.valueOf( userType); }}
方法二中的对应输出类:
public class SimpleOperator { private Integer userId; private String name; private EnumOperatorType userType; public EnumOperatorType getUserType() { return userType; } public void setUserType(EnumOperatorType userType) { this.userType = userType; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getName() { return name; } public void setName(String name) { this.name = name; }//这个构造函授必须,注意userType的类型为Object public SimpleOperator(int userId,String name,Object userType){ super(); this.userId = userId; this.name = name; this.userType = (EnumOperatorType)userType; }}
1 0
- spring data jpa 查询部分属性
- Spring Data Jpa 自定义属性查询规则
- Spring Data JPA的findBy函数不能对部分属性查询
- Spring Data JPA 查询
- Spring Data Jpa 查询
- Spring data jpa查询多个部分字段的方法
- spring-data-jpa只查询实体部分字段
- Spring Data JPA根据属性名查询方法
- spring data jpa 分页查询
- Spring Data JPA查询关键字
- spring data jpa 构建查询
- Spring Data JPA 动态查询
- spring data jpa分页查询
- Spring Data JPA动态查询
- SPRING DATA JPA 查询关键字
- Spring Data JPA Specification查询
- Spring Data JPA 实例查询
- spring data jpa 分页查询
- 2017腾讯校招面试回忆(成功拿到offer)
- SAP 中国本地化内容汇总
- python mysql使用连接池的通用操作类
- javascript 类型 值 变量 十一
- linux命令——df
- spring data jpa 查询部分属性
- Mysql直接插入json数据
- java+pgsql实现保存图片到数据库,以及读取数据库存储的图片
- Logger的使用
- MPI编程函数接口(C/C++)
- Hibernate Component例子
- raptor程序:判断大小
- 一些android studio中的比较好用的jar包
- 第四周项目-星号拼字母