【问题标题】:JPA Query Exception to fetch data with joinJPA 查询异常以通过连接获取数据
【发布时间】:2013-10-01 14:32:02
【问题描述】:

道类

@Query("select pt from com.ctpm.rrh.basket.model.user.User as u  inner join u.userPaymentTransaction as pt where u = ?")
    List<UserPaymentTransaction> findPaymentTransactionforUser(User user);

控制台上的QueryException

` org.hibernate.QueryException: 无法解析属性: userPaymentTransaction of: com.ctpm.rrh.basket.model.user.User [从 com.ctpm.rrh.basket.model.user.User 中选择 pt 作为你内连接 u.userPaymentTransaction as pt where u = ?]

UserPaymentTransaction 类有

@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private Money amount;

    private String description;

    @NotNull
    @OneToOne(cascade = CascadeType.MERGE)
    User owningUser;

    private Date transactionDate;

请帮忙

【问题讨论】:

  • 导致这个Exception的代码在哪里?

标签: java jpa


【解决方案1】:

我认为您的查询应该是这样的:-

@Query("select pt from UserPaymentTransaction pt where pt.owningUser = ?1")

【讨论】:

  • @RJ 好的,谢谢,如果我需要 UserPaymentTransaction 列表而不是我应该使用哪个查询?
  • 这将给出UserPaymentTransaction的列表,其中所有UserPaymentTransaction.user = userYouHaveSet
  • @RJ 现在我改变了问题,请检查
  • @krishan - 由于它是一对一的映射,因此列表将只有 1 个元素。即使您反过来,您也只会为特定用户获得 1 个结果。这实际上是给你的One-One
  • @RJ 根据您的说法,哪个查询适用于基于 owningUser id 的 UserPaymentTransaction 列表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2011-04-21
  • 2018-06-03
  • 2011-06-27
  • 2020-10-22
  • 1970-01-01
相关资源
最近更新 更多