【发布时间】:2017-08-06 05:50:29
【问题描述】:
我正在使用 Spring Boot,并且我拥有这些实体:
@Entity
@Table(name = "usuario")
@NamedQuery(name = "Usuario.findAll", query="select u from Usuario u where
u.estactiv=true order by u.user")
public class Usuario implements Serializable{
...
@Column(name="usu_estactiv",nullable=false)
private boolean estactiv=true;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
@JsonManagedReference
private List<Roles> roles = new ArrayList<>();
...}
@Entity
@Table(name = "roles")
@NamedQuery(name = "Roles.findAll", query="select r from Roles r where
r.estactiv=true order by r.descripcion")
public class Roles implements Serializable{
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(columnDefinition="integer", name="usu_id", nullable=false)
@JsonBackReference
private Usuario user;
@Column(name="rol_estactiv",nullable=false)
private boolean estactiv=true;
...}
在我的存储库中:
@RepositoryRestResource(collectionResourceRel = "usuario", path = "usuario")
public interface UserRepository extends PagingAndSortingRepository<Usuario,
Integer> {
@Override
@Query
public Page<Usuario> findAll(Pageable pageable);
Usuario findByUserAndEstactivTrue(@Param("user") String user);
}
@RepositoryRestResource(collectionResourceRel = "roles", path = "roles")
public interface RolesRepository extends
PagingAndSortingRepository<Roles,Integer>{
@Override
@Query
public Page<Roles> findAll(Pageable pageable);
@Override
@Query
public Iterable<Roles> findAll();
}
当我转到网址时: http://localhost:8080/api/usuario/我得到了 estactiv=true 的用户:
但是当我转到http://localhost:8080/api/usuario/1/roles 时,我得到了这个:
我只想为每个用户获取具有 estactiv=true 的角色,例如:
用户 admin(id=1)在我的角色表中有两个角色:user(false) 和 admin(true),但是当我转到 /api/usuario/1/roles 时,我只想获取 admin(真的)
我希望我的问题很清楚,如果没有,请告诉我以便解决它。提前感谢您的帮助。
【问题讨论】:
标签: java spring spring-boot