【发布时间】:2015-11-18 13:53:10
【问题描述】:
假设有一个实体
@Entity
public class Article {
// ...
private String uri;
public void setUri(URI uri) {
this.uri = uri.toString();
}
public URI getUri() {
return URI.create(uri.toString();
}
}
还有一个 spring data jpa 存储库
public interface ArticleRepository extends CrudRepository<Article, Long> {
Optional<Article> findByLink(URI link);
}
但使用findByLink(URI) 方法失败并出现InvalidDataAccessApiUsageException: Parameter value [http://foo.de/foo.html] did not match expected type [java.lang.String (n/a)]。这当然可以通过将参数类型更改为字符串来避免。但随后每个URI 都必须在查询之前转换为字符串。
如果必须使用 spring data jpa 查询 URI 类型的属性,最好的方法是什么?
【问题讨论】:
标签: java spring spring-data-jpa