Java 如果仅从数据库获取数据,是否需要实体?

Java 如果仅从数据库获取数据,是否需要实体?,java,jpa,relational-database,dao,Java,Jpa,Relational Database,Dao,希望简单的问题: 如果我有一个应用程序,应该只从 数据库(它不保存任何内容) 我需要一个精确的数据库结构,由一组 @实体注释类 我需要实体吗 或者我可以使用DAO并执行以下操作: ObjectFromDb ob=dao.find(someProperty) 鉴于ObjectFromDb只是一个普通的POJO,没有一个JPA 注释 我在谷歌上搜索了一会儿,但问题似乎太具体了

希望简单的问题:

  • 如果我有一个应用程序,应该只从 数据库(它不保存任何内容)
  • 我需要一个精确的数据库结构,由一组 @实体注释类
  • 我需要实体吗
  • 或者我可以使用DAO并执行以下操作:

    ObjectFromDb ob=dao.find(someProperty)

    鉴于ObjectFromDb只是一个普通的POJO,没有一个JPA 注释


我在谷歌上搜索了一会儿,但问题似乎太具体了<谢谢你的建议

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

您可以为查询提供支持

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

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

List<MyClass> dtos = em.createQuery("SELECT NEW com.example.MyClass( e.name, e.data) FROM Entity e").resultList();
List dtos=em.createQuery(“从实体e中选择新的com.example.MyClass(e.name,e.data”).resultList();
编辑:对于带注释的实体,您可以使用SQL中不可用的JPQL功能,例如路径导航。正确注释的实体可以澄清DB映射


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

它们如何让我的生活更轻松?在我的情况下,使用实体而不是POJO有什么好处?因为您可以将JPQL与带注释的实体一起使用,因此可以使用路径导航。