我有一个具有testattribut类型属性的Post实体,其代码如下:
@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后获得属性testattribut(在其中我也获得其他属性),如下面的代码所示>>
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()返回查询结果时,未返回testattribut属性。这是返回的结果:
{ "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(),但我只想恢复实体的部分属性,包括testattribut,此外,使用json.toJson()会使网络上的数据加载变得繁重]
谢谢
我有一个Post实体,该实体具有以下代码的testattribut type属性:@Entity公共类Post扩展了模型{@Id private long id; @ManyToOne私人PostType ...
您还将需要在ImageLink上加入JOIN才能将其包括在结果集中。