当前位置: 首页 > 知识库问答 >
问题:

Ebean没有拿一个到很多关系

倪棋
2023-03-14

我有一个Post实体,它有一个TestAttribute类型属性,其代码如下:

    @Entity
    public class Post extends Model {
    @Id
    private long id;
    @ManyToOne
    private PostType postType;
    @ManyToOne
    private User user;
    @ManyToOne
    private Category category;

    @OneToMany (cascade = CascadeType.PERSIST)
    private List<ImageLink> testattribut;
    private String description;
    private int likes;
    private int messages;
    private boolean liked;
    private boolean saved;
    private Date timesTamp;

    //getters and setters

    }

我尝试在传递一个RawSql(其中我还获得了其他属性)之后获取属性testAttribute,如下代码所示

    public Result test(){

        long user_id = 1;

        String sql =
                "SELECT p.id, p.description, p.likes, p.times_tamp, u.id, " +
                "u.name, u.phone, u.profile_url, u.rate, u.rate_count, c.id, " +
                "EXISTS ( " +
                "SELECT * " +
                "FROM likes " +
                "WHERE p.id = likes.post_id " +
                "AND likes.user_id = "+user_id +
                ") AS liked "+
                "FROM post p " +
                "JOIN user_ u ON u.id = p.user_id "+
                "JOIN category c ON c.id = p.category_id";

        RawSql rawSql = RawSqlBuilder
                .parse(sql)
                .tableAliasMapping("u", "user")
                .columnMapping("c.id", "category.id")
                .create();


        List<TestEntity> data = TestEntity.finder
                .query()
                .setRawSql(rawSql)
                .fetch("testattribut.image", "url")
                .findList();


        return ok(Ebean.json().toJson(data));
    }

我的问题是,当我使用Ebean返回查询结果时。json()。tojson(),则不会返回TestAttribute属性。这是返回的结果:

{
    "id": 1,
    "user": {
        "id": 18,
        "name": "smozi_shop",
        "phone": "+22969298229",
        "profileUrl": null,
        "rate": 0.0,
        "rateCount": 0
    },
    "category": {
        "id": 1
    },
    "description": "smozi",
    "likes": 1,
    "liked": false,
    "timesTamp": 1575956493968
}

注意,当我使用json时。toJson()返回结果,但返回的实体属性可以使用json。toJson(),但我只想恢复实体的部分属性,包括testAttribute,以及使用的json。toJson()将使在网络上加载数据变得沉重

非常感谢。

共有2个答案

纪晨
2023-03-14

最后我用Ebean修复了它。路径属性

PathProperties fetchPath =  new PathProperties();
fetchPath.addToPath("imagesLinks", "image");
fetchPath.addToPath("imagesLinks.image", "url");        
return ok(Ebean.json().toJson(data, fetchPath));

我希望它能帮助那些有同样问题的人。如果有其他方法,我很乐意阅读您的文章;)

松成和
2023-03-14

您还需要ImageLink上的联接才能将其作为结果集的一部分。

 类似资料:
  • 我有一出戏!使用ebean进行模型管理的框架项目。我有4个模型,A B C D. A和B是oneTo多,B和C是OneTo多,B和D是One To多。现在我想要一个与所有相关的B C D链接的A列表。 我现在拥有的是 但是性能非常差,根据sql日志,sql查询没有按照我的要求进行连接。是否有任何方法可以对所有这些对象使用查询联接?(即,选择包含4个查询的所有A B C D,并在本地连接它们,而不是

  • 在Play2.0.2中使用Ebean我有两个这样的模型: 我的模型看起来像: 我想加入上述两个模型,以便在我的控制器中: 但这给我下面的例外列没有找到: 为什么我的列被转换为而不是

  • 问题内容: 我将Ebean与Play 2 Framework结合使用,并得到了两种模型:用户模型和书本模型。用户模型与书籍模型以一对多关系连接。因此,每个用户可以拥有很多书,甚至根本没有书。书籍模型本身也具有属性。现在,我想在用户模型中创建一个查询,该查询仅返回具有某些属性书的用户。例如:一个属性可能是条件,例如new或used。现在,给我所有拥有新状态书籍的用户。是否可以使用Ebean方法创建这

  • 我正在使用Play Framework 2.1.0和Ebean,在查询下列场景时遇到问题: 我有3类表示数据库中的表。 使用Ebean,如何 > 是否检索项目列表中的所有子项目? 是否检索项目的所有小型项目? 给定子项目列表,如何检索所有小项目?

  • 问题内容: 尝试创建组合键(EmbeddedId)时,我遇到了Ebean的问题。 这是我所拥有的草案: 注意 :我正在将Ebean 4.1.4与Java 1.6一起使用。 因此,此代码运行良好,但存在一个我正在尝试解决的问题-数据库中的结果表如下所示: entityB_ID [主要] entityA_FK_ID [主要] 实体A_fk 如您所见,考虑到“ entityA_FK_ID”列,最后一列是

  • 我的Laravel项目有问题。我有范文和评论。一篇帖子有很多评论,这是我帖子评论中的关系。当我想获得所有帖子和评论时,一切都很好: 我有问题,因为我想写搜索引擎的模型。我只想得到帖子和评论,如果搜索条件为真的评论。我尝试以下代码: 但这段代码返回所有要发布的注释,而不仅仅是条件为true的注释。