我想使用@Query批注从具有@OneTo许多关系的实体创建左连接查询。
母公司是:
@Entity
@Table(name="Registration")
public class Registration {
@Column(nullable = false)
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate")
private LocalDate effect;
@OneToMany(targetEntity=Payment.class, cascade=CascadeType.ALL,fetch = FetchType.LAZY)
@JoinColumn(name="uuid")
private List<Payment> payment;
}
孩子:
@Entity
@Table(name="Payment")
public class Payment {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name="uuid", strategy = "uuid2")
@Column(columnDefinition = "BINARY(16)")
private UUID uuid;
}
对于DAO,我确实喜欢以下内容:
@Query("SELECT p FROM Registration r JOIN r.payment p WHERE r.effect = :effect")
Iterable<Payment> find(@Param("effect") LocalDate effect);
显然,它是错误的,因为生成的查询是:
选择payment1。uuid为uuid1_9_,付款1_。注册时内部加入付款1的注册金额。uuid=payment1_uid。uuid在哪里注册。效果=?
在生成关系表时:
对我来说,正确的查询应该是这样的:
选择p.*从注册r加入registration_paymentrp onrp.registration=r.uuid加入支付p onp.uuid=rp.payment其中r.effect='2015-10-16'
请问什么是好的查询语法?实际查询返回空数组。
最后,我找到了一个解决方案,你必须用@JoinTable描述关系表:
@JoinTable(
name="registration_payment",
joinColumns = @JoinColumn(name="registration"),
inverseJoinColumns = @JoinColumn(name = "payment")
)
private List<Payment> payment;
不需要修改@Query:
@query("SELECT p from注册r JOINr.paymentp WHEREr.effect=:效果")
生成的查询是:
选择payment2_uuid作为uuid1_9_,payment2_金额作为amount2_9_注册registrati0_内连接registration_paymentpayment1_registrati0_uuid=payment1_注册内连接支付payment2_payment1_支付payment2_uuid其中registrati0_效果=?
我在这里创建了一个类似于教程的Web应用程序:https://spring.io/guides/tutorials/react-and-spring-data-rest/ . 我已经添加了后gresql数据库,一切正常。我有一个基本查询查找我的存储库中的By用户名(字符串名称),工作正常。我的问题是,由于某种原因我无法创建自定义查询,例如 . 假设我做了一个测试,我只想得到这个语句的值。我说的不能
问题内容: 我正在使用Spring Data JPA进行项目。我在数据库中有一个表作为my_query。 我想创建一个将字符串作为参数的方法,然后将其作为数据库中的查询执行。 方法: 例如,当我通过 那么它应该在数据库级别运行该查询。 存储库类如下。 但是,它没有按我预期的那样工作。它给出以下错误。 还有什么其他方法可以实现这个目标。提前致谢 问题答案: 您可以参数化的唯一部分是在子句中使用的值。
我是Spring Data投影的新手,我正在尝试在一个新项目中使用此功能。 特别是,我想在与复杂查询关联的回购方法上使用投影。 我用注释注释了我的方法,并声明了一个JPA查询,其中包含几个连接的表/实体和一个复杂的where条件。 在本文中,我了解到可以使用基于接口的投影和基于类的投影,但只有第一个支持嵌套投影。 我需要嵌套投影,但似乎只有使用基于接口的投影才支持此功能,并且这种方法仅适用于自动生
下面是存储库类
我正在用Spring Data JPA做一个项目。我在数据库中有一个表为my_query。 我想创建一个以字符串作为参数的方法,然后将其作为数据库中的查询执行。
我有一个整数参数。我需要编写一个定制的Spring JPA查询,其中等效的SQL是<(1,2)中的code>和x.propertyStatuid。 我在SpringDataJPA文档中看到关键字是“in”,如