小编Phi*_*day的帖子

postgresql查询显示用户的组

如果我在组中创建用户,例如:

create role user_1 login inherit in role group_1;
Run Code Online (Sandbox Code Playgroud)

以后,我可以使用哪个查询检索用户所属的组?

sql postgresql

18
推荐指数
3
解决办法
3万
查看次数

没有使用拦截器绑定调用拦截器方法

我正在使用Java EE 6和Jboss AS7.1并尝试使用拦截器绑定(来自jboss站点的示例).

我有一个InterceptorBinding注释:

@InterceptorBinding
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface GeoRestrictedEquipment {
}
Run Code Online (Sandbox Code Playgroud)

拦截器:

@GeoRestrictedEquipment
@Interceptor
public class GeoRestrictedEquipmentInterceptor {

    @EJB EquipmentDao equipmenttDao;    
    @EJB SecurityService securityService;    

    @AroundInvoke
    public Object checker(InvocationContext ctx) throws Exception {
        Integer id = (Integer) ctx.getParameters()[0];
        Equipment equipment = equipmenttDao.findById(id);
        GeoChecker.check(equipment.getSite(), securityService.getUser());

        return ctx.proceed();
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个豆子:

@Stateless
@LocalBean
@SecurityDomain(Realm.NAME)
@RolesAllowed({ Roles.REGISTERED })
public class PumpService implements PumpServiceLocal {

    @Override
    @GeoRestrictedEquipment
    public PumpInfos getPumpInfos(Integer pumpId) {
        /* ... */
    }
}
Run Code Online (Sandbox Code Playgroud)

但拦截器没有被调用......我从这个例子中错过了什么? …

java ejb interceptor java-ee-6

12
推荐指数
2
解决办法
1万
查看次数

Mapstruct:如何限定IterableMapping函数

我在实体和DTO之间有一个映射器:

@Mapper(componentModel="cdi", uses = { RegionMapper.class })
public interface ClusterMapper {
    @Mapping(target="regions", ignore=true)
    ClusterDto map(Cluster entity);

    ClusterDto mapWithRegions(Cluster entity);
}
Run Code Online (Sandbox Code Playgroud)

第一个映射函数是列出实体的"简单映射",第二个映射函数用于详细视图.我想要List等价,所以我有一个注释:

@Qualifier
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Simple {
}
Run Code Online (Sandbox Code Playgroud)

并将此限定符添加到第一个映射函数和List函数:

@Mapper(componentModel="cdi", uses={RegionMapper.class})
public interface ClusterMapper {
    @Simple // <====
    @Mapping(target="regions", ignore=true)     
    ClusterDto map(Cluster entity);

    ClusterDto mapWithRegions(Cluster entity);

    @IterableMapping(qualifiedBy = Simple.class) // <====
    List<ClusterDto> map(List<Cluster> entities);

}
Run Code Online (Sandbox Code Playgroud)

但即使使用@Simple注释,我也会收到一条错误消息:

找到用于将集合元素映射到...的模糊映射方法

如何使List map(List)功能"选择"第一个映射功能?

java mapstruct

2
推荐指数
1
解决办法
4656
查看次数

标签 统计

java ×2

ejb ×1

interceptor ×1

java-ee-6 ×1

mapstruct ×1

postgresql ×1

sql ×1