有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Vaadin JPA容器筛选器以多个关系连接

我在用户和上下文类之间有很多关系,中间表中有一个额外的列

用户。爪哇

@Entity
@Table(name = "USERS")
public class Users {
    private Long user_id;
    private Long niu;
    private String nom;
    private String mail;
    private Set<UserContext> userContexts  = new HashSet<UserContext>(0);

上下文。爪哇

@Entity
@Table(name = "CONTEXT")
public class Context {
    private Long id;
    private String name;
    private Area area;
    private String code;
    private Set<UserContext> userContexts = new HashSet<UserContext>(0);

用户上下文。爪哇

@Entity
@Table(name = "USER_CTX")
@AssociationOverrides({
        @AssociationOverride(name = "pk.user",
            joinColumns = @JoinColumn(name = "USER_ID")),
        @AssociationOverride(name = "pk.context",
            joinColumns = @JoinColumn(name = "CTXT_ID")) })
public class UserContext implements Serializable{

    private static final long serialVersionUID = 1L;
    private UserContextID pk = new UserContextID();
    private String admin;

UserContextID。爪哇

@Embeddable
public class UserContextID implements Serializable {

    private static final long serialVersionUID = -9120607274421816301L;
    private Users user;
    private Context context;

我有一张用JPA容器填写的表格

private JPAContainer<Users> persons =
    JPAContainerFactory.make(Users.class, PERSISTENCE_UNIT);

实际上,它显示了所有用户(没有按上下文过滤),我想要的是使用这种多个关系按具体上下文id过滤,知道吗?我尝试过使用JoinFilters,但我无法获得它,请帮帮我

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    您可以使用过滤器,使用点符号选择正确的子属性,例如

    entityContainer.addContainerFilter(new Like("listOfAnotherEntity.type", "TYPE1"));