当前位置: 首页 > 知识库问答 >
问题:

使用实体作为参数的Spring Data JPA自定义查询不起作用

寿阳华
2023-03-14

当我在Spring Data JPA中使用entity作为参数的自定义查询时,我得到了一个异常:

java.sql.sqlexception:未为参数1指定值

汽车:

@Entity
@Table(name = "car")
public class Car {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "car_id")
private long id;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "order_id", unique = true, nullable = true, insertable = true, updatable = true)
private Order order;
...
}

订单:

@Entity
@Table(name = "order")
public class Order {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_id")
private long id;

@OneToOne(mappedBy="order")
private Car car;
...
}

我还有一个Spring Data JPA存储库,它创建了定制查询,用于按车查找订单:

public interface OrderRepository extends CrudRepository<Order, Long> {

Optional<Order> findByCar(Car car);

}

看来Spring Data JPA proxy找不到Car实体。我在这里发现了非常类似的问题:当查询参数是实体时,Spring数据查询不起作用,但在我的例子中,我急切地获取实体。是映射或Spring Data JPA出了问题吗?

编辑

Hibernate查询:选择order0_.order_id作为order_i1_3_,order0_.client_id作为client_i4_3_,order0_.createddate作为createdD2_3_,order0_.returndate作为returnDa3_3_from order order0_left outer join car car1_on order0_.order_id=car1_.order_id其中car1_.car_id=?

我注意到我在自定义查询中使用的参数Car也是Order实体的类成员。然而,当我调用查询时,我在Car和Order之间有一个循环依赖关系:Order有一个空Car。

共有1个答案

羊舌阎宝
2023-03-14

试试看:

Order findOneByCar(Car car);
 类似资料:
  • 字体始终显示默认字体。 我的字体存储在资源/字体中。我尝试使用其他字体,并对字体进行重新编码。此外,PixlUI库并没有解决这个问题。 主要活动。Java语言 activity\u main。xml

  • 但结果是一样的。 这是我的.hbm.xml文件中的内容: 对于用户: 我做错了什么?如果查询参数不是“简单”类型,我需要做一些特殊的事情吗?

  • 我想使用中定义的枚举作为查询字符串中参数定义的一部分。 我在我的Swagger 2.0规范文件的< code>definitions部分定义了Swagger枚举。 我可以在其他定义中创建对它的引用: 当参数在:body中为中为

  • 我正在使用 swagger(1.2) 来记录我的球衣 jaxrs (2.1) api。我使用 swagger-ui 来显示我的 api。对于 http GET 请求,我在 api endpoint中有一个查询参数作为 @QueryParam(“token”)。Swagger 正在显示此查询参数的字段,但是当我每次收到它的空值时单击“尝试一下!”按钮时。 我还用@ApiParam注释了@ query

  • 验证,我正在尝试为我的文本字段创建多个规则,例如:required、minlength、maxLength,并将它们链接在一起,并根据这些规则将h参数传递给preform validation 所以我试着用文档中的例子: http://vee-validate.logaretm.com/v2/guide/custom-rules.html#args-and-rule-configuration 我

  • 我正在尝试使用条令2查询生成器创建以下场景 我设置了Doctrine2自行生成的以下关系 这是我的回购课 但我没能完成。它抛出以下错误 [Tue Oct01 22:30:11 2013][错误][客户端127.0.0.1]PHP致命错误:未捕获异常'Doctrine\ORM\Query\QueryExc0019',消息'SELECT p from Entity\Tree p LEFT JOIN p