【问题标题】:IllegalArgument Exception: Not an entityIllegalArgument 例外:不是实体
【发布时间】:2019-05-03 19:42:40
【问题描述】:

我有我的 Spring Boot 应用程序。我在 daoImpl 层写了下面的代码。

    @Autowired
    EntityManager


CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Person> c = qb.createQuery(Person.class);
Root<Person> p = c.from(Person.class);

@Entity 类中的“Person”放置在单独的“commons”包中。

它在第二行抛出异常“Not an entity..”,尽管它通过了第一行。 有人可以帮我解决可能的原因。这对我来说看起来很奇怪,因为上一行接受了同一个实体,但下一行没有接受。

【问题讨论】:

  • 能否请您添加更多信息,例如订单类和整个类?
  • “第一行”可能是指调用createQuery,但这可以包含任何旧类,而不仅仅是一个实体。 “第二行”需要一个实体。但是你提供的信息不足以决定任何事情

标签: spring-boot jpa spring-data-jpa criteria-api


【解决方案1】:

一般来说不管你有什么问题你不能有一个名为'Order'的表,因为它是sql中的一个关键字。

将其更改为其他内容并检查它是否可以工作。

如果您仍想使用任何关键字,请参阅this。

【讨论】:

  • 对不起,我给了一个假名字我的实际实体名称是基于我的项目要求。
  • 但是您可以通过引用名称来获得一个名为Order 的表,这与手头的问题有什么关系我看不到...也就是说这应该是评论而不是回答
  • 我已经编辑了我的问题。请关注错误“IllegalArgument Exception: Not an entity....Person”而不是我取的名字,因为我取了一些假名字。
【解决方案2】:

我得到了解决方案,如果实体包在单独的项目中,我们应该使用@EntityScan 而不是@ComponentScan 来查找实体包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多