【问题标题】:Do I need entities if only getting data from db?如果仅从数据库获取数据,我是否需要实体?
【发布时间】:2014-02-09 17:36:05
【问题描述】:

希望简单的问题:

  • 如果我有一个应用程序应该只从 数据库(它不持久化任何东西)?
  • 我是否需要由一组提供的 db 的精确结构 @Entity 注释的类?
  • 我还需要实体吗?
  • 或者我可以只使用 DAO 并执行以下操作:

    ObjectFromDb ob = dao.find(someProperty);

    鉴于 ObjectFromDb 只是一个没有单个 JPA 的常规 POJO 注解?

我用谷歌搜索了一会儿,但问题似乎太具体了...
感谢您的建议!

【问题讨论】:

    标签: java jpa relational-database dao


    【解决方案1】:

    您不需要实体进行查询,但它们可以让您的生活更轻松。

    您可以use regular SQL进行查询。

    您也可以定义一些实体,但只查询其数据的子集 - 即投影查询。

    您还可以使用带有投影查询的 JPA 构造函数命令直接映射到您的结果对象:

    List<MyClass> dtos = em.createQuery("SELECT NEW com.example.MyClass( e.name, e.data) FROM Entity e").resultList();
    

    编辑:使用带注释的实体,您可以使用 SQL 中不可用的 JPQL 功能,例如路径导航。正确注释的实体可以阐明数据库映射。

    实体不需要映射表的所有列,您可以使用任何您喜欢的子集,只要它包含 id。

    【讨论】:

    • 它们如何让我的生活更轻松?在我的情况下使用实体而不是 POJO 有什么优势?
    • 因为您可以将 JPQL 与带注释的实体一起使用,因此可以使用路径导航。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多