Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果列表是另一个列表的子集,则返回记录_Java_Sql_Postgresql_Jpa_Ebean - Fatal编程技术网

Java 如果列表是另一个列表的子集,则返回记录

Java 如果列表是另一个列表的子集,则返回记录,java,sql,postgresql,jpa,ebean,Java,Sql,Postgresql,Jpa,Ebean,我刚开始使用Ebean,需要一些帮助来编写查询。作为参考,我将Ebean 3.2与Postgres一起使用 现在我有一个“警报”模型,定义如下: @Entity public class Alert extends Model { @Id public long id; @ManyToMany(cascade = CascadeType.PERSIST) @JoinTable(name = "alert_account", joinColumns = @J

我刚开始使用Ebean,需要一些帮助来编写查询。作为参考,我将Ebean 3.2与Postgres一起使用

现在我有一个“警报”模型,定义如下:

@Entity
public class Alert extends Model {


    @Id
    public long id;


    @ManyToMany(cascade = CascadeType.PERSIST)
    @JoinTable(name = "alert_account", joinColumns = @JoinColumn(name = "alert_id"), inverseJoinColumns = @JoinColumn(name = "account_id"))
    private List<Account> accounts;

//...
}

@实体
公共类警报扩展模型{
@身份证
公共长id;
@ManyToMany(cascade=CascadeType.PERSIST)
@JoinTable(name=“alert\u account”,joinColumns=@JoinColumn(name=“alert\u id”),inverseJoinColumns=@JoinColumn(name=“account\u id”))
私人名单账户;
//...
}
警报和帐户之间存在多对多关系。警报可以包含一组帐户

我想编写一个查询,查找帐户仅为另一个帐户列表子集的所有警报


以以下为例:

警报1具有帐户[#a、#b、#c]

警报#2有帐户[#b,#c]

警报#3有帐户[#b]

警报#4有帐户[#a]

我的账户清单是:[b,#c]

我希望查询返回Alert#2和Alert#3,因为它们包含的帐户仅是帐户列表[#b,#c]的子集


我已经尝试过以下方法,但这会返回其帐户与子集列表中的任何帐户匹配的警报

List<Account> accountSubset = //... 
return Alert.find.where().in("accounts", accountSubset).findList(); 

列出accountSubset=/。。。
返回Alert.find.where().in(“accounts”,accountSubset.findList();
为了澄清,上述查询具有以下行为:

以以下为例:

警报1具有帐户[#a、#b、#c]

警报#2有帐户[#b,#c]

警报#3有帐户[#b]

警报#4有帐户[#a]

我的账户清单是:[b,#c]

将获取警报1、警报2和警报3,因为它们包含与帐户列表中任何帐户匹配的帐户[#b、#c]



非常感谢您的帮助!我更愿意在数据访问层进行过滤,但我愿意接受其他建议。

>我正在使用Ebean 3.2
您知道Ebean的最新版本是12.1.3,对吗?Ebean 3.2是一个非常旧的版本。
>我正在使用Ebean 3.2
您知道最新版本的Ebean是12.1.3,对吗?Ebean 3.2是一个非常旧的版本。