加入Spring启动操作

时间:2017-09-05 06:03:07

标签: spring-boot spring-data-jpa

我有2个表Property和Rent我想从两个表中获取公共记录。我已经尝试了下面的代码,但我收到了错误。我想知道我做了什么错。

这是我的疑问:

@Query(value="SELECT * FROM Property INNER JOIN Rent ON Property.Property_id=:Rent.propertyid",nativeQuery=true)
 public List<Property> ghgh();

我得到的错误:

  

org.hibernate.QueryException:并非所有命名参数都已设置:   [Rent.propertyid] [SELECT * FROM Property INNER JOIN Rent ON   Property.Property_id =:Rent.propertyid]

1 个答案:

答案 0 :(得分:1)

冒号(SELECT p FROM Property p WHERE p.name = :name )标记一个命名参数,例如:

:name

在这种情况下,:Rent.propertyid是一个命名参数,必须提供该参数才能使查询正常工作。

您在查询中使用@Query(value="SELECT * FROM Property INNER JOIN Rent ON Property.Property_id=Rent.propertyid", nativeQuery=true) ,这就是为什么Hibernate会抛出异常,说该命名参数不存在(您的方法没有任何参数)。

你不应该离开结肠吗?

byte[]