2

数据休息和 jpa。

我使用@EmbeddedId 创建了一个具有复合键的实体

并且存储库使用 findById 查询参数扩展 CrudRepository

当我输入网址时

[链接] ( http://localhost:8080/data/person/search/findById?findById=1,2&name=abc )

我收到错误,无法将字符串转换为 Long。

有什么方法可以使用 Spring JPA 将字符串转换为 Long 列表?

请帮我。

4

1 回答 1

4

实际上,我今天只是在研究这个功能。

在最新的快照版本中,有一个新的注解:@ConvertWith. 您将Spring Core Converter实现的类名放在该注释中,导出器将使用该转换器将String[]查询参数值转换为查询方法的参数。

有一个如何在测试中的存储库中使用它的示例(我将很快更新 wiki,但还没有机会,因为这些新快照上的墨水甚至还没有变干 :)。要在 URL 查询字符串中传递多个值,请多次引用同一个名称:

http://localhost:8080/people/search/findById?id=1&id=2&id=3

当然,您可以选择将多个值编码为单个参数值(例如,以逗号分隔)并在您自己的转换器中进行转换。String[]无论如何,您仍然会被传递给您的自定义转换器。

于 2012-08-07T22:12:13.023 回答