java - Ebean 和 ManyToOne 建议

标签 java sql playframework-2.0 ebean

您好,我可能需要一些帮助来了解我应该如何处理以下问题:

仅供引用,我正在使用 play framework 2.0 和 Ebeans ~2.7 版

我有一个模型项目和一个模型报告。一个项目可以有多个报表,但一个报表只能属于一个项目。

这是我的项目模型:

@Entity
@Table(name = "Projects")
public class Projects extends Model {
    private static final long serialVersionUID = -3343133304437498550L;

   @Id
   public long id;

   @NotNull
   @Size(min = 1, max = 255)
   public String name;

   @NotNull
   @Size(min = 1, max = 255)
   public String description;

   @Formats.DateTime(pattern = "dd/MM/yyyy")
   public Date created_at = new Date();

   public static Finder<Long, Projects> find = new Finder<Long, Projects>(Long.class, Projects.class);

这是我的报告模型:

@Entity
@Table(name = "Reports")
public class Reports extends Model {
    private static final long serialVersionUID = -6617128169471038678L;

    @Id
    public long id;

    @Constraints.Required
    public String description;

    @Formats.DateTime(pattern = "dd/MM/yyyy")
    public Date created_at = new Date();

    @ManyToOne
    @NotNull
    public Projects project;

    public static Finder<Long, Reports> find = new Finder<Long, Reports>(Long.class, Reports.class);
}

保存工作没有问题我可以创建一个项目,我可以创建多个指向正确项目的报告。我的问题是我将如何查询这个。

当我有一个项目时,我如何获得所有相关报告?我想我可以把它当作一个普通的 SQL 查询来计算,但我很确定它应该可以用 ebean 实现。

致以最诚挚的问候,感谢您抽出宝贵时间!

更新: 这就是我使用 sql 查询的方式

SELECT * FROM `Projects` LEFT JOIN `Reports` ON Projects.`id` = Reports.`id`;

最佳答案

我现在不能尝试,但我会这样做:

public class Reports extends Model {

...

  public static List<Reports> findByProject(Projects project) {
    return find.fetch("project").where().eq("project.id", project.id).findList();
  }
}

关于java - Ebean 和 ManyToOne 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045427/

相关文章:

java - Playframework WS Api 和证书

http - Play Framework - 如何重定向到插件 Controller 生成的页面? [安全社交]

java - 我可以将 hibernate/jpa 查询的结果映射到非实体的类吗?

SQL 删除行返回 - "ORA-02292: integrity constraint (..) violated - child record found"

php - 从 MySQL 数据中删除/隐藏添加的反斜杠

php - Yii : Getting id after createCommand execute query

scala - Play 2 反向路由,从 Controller 方法获取路由

java - 多封电子邮件

java - 以编程方式调用特定的 JUnit 测试

java - kubernetes 中的 Grpc 连接不起作用 => 不可用 : Network closed for unknown reason