Play Framework从不同的列表属性返回相同的值

时间:2015-07-15 21:01:28

标签: java playframework playframework-2.0 ebean

我在班级用户中有两个关系列表:

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="foreign_stories")
List<Story> foreignStories;

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="preferred_stories")
List<Story> preferredStories;

当我尝试从这些列表中检索数据时,即使只保存在一个数据库中,我也获得了相同的数据。

我尝试了一个解决方案,这里是

return Ebean.find(User.class)
                .fetch("foreign_stories")
                .fetch("preferred_stories")
                .where()
                .eq("id",userid)
                .join("foreign_stories","preferred_stories")
                .findUnique();  

但我有例外..

  

java.lang.RuntimeException:从models.User获取路径preferred_stories的BeanDescriptor时出错

1 个答案:

答案 0 :(得分:0)

我发现一个适用于我的解决方案,无需获取其他表,也没有异常..

而是使用列表本身声明一个包含列表的实体。

select  count(*) `ID count`,  (select count(*) from csv_table ) total from 
(select distinct csv_col_1   from csv_table )  distinct_rows;

ForeignStories是..

@OneToOne(cascade = CascadeType.ALL)
ForeignStories foreignStories = new ForeignStories();