我将spring-boot-starter-data-solr
与kotlin
一起使用。
我定义了以下Document类
@SolrDocument
data class SolrImage(
@Id @Field private val id : String,
@Field private val clip : Long,
@Field private val filename : String,
@Field private val uri : String
)
和此存储库
@Repository
interface ImageRepository : SolrCrudRepository<SolrImage, String> {
fun findByClip(clip : Long) : List<SolrImage>
}
当我执行以下val images = imageRepository.findByClip(clip)
然后我收到此错误:
Failed to instantiate SolrImage using constructor fun <init>
(kotlin.String, kotlin.Long, kotlin.String, kotlin.String): SolrImage
with arguments 0-image1281.png,[0],[0-image1281.png],null`
由于clip
和filename
字段作为数组返回。
但是,当我用等效的Java代码替换文档类时:
@SolrDocument
public class SolrImage {
@Id
@Field
private String id;
@Field
private Long clip;
@Field
private String filename;
@Field
private String uri;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Long getClip() {
return clip;
}
public void setClip(Long clip) {
this.clip = clip;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}
然后我可以按预期检索对象。
我不确定为什么这样做会有所不同。有什么建议么?我真的很喜欢和Kotlin一起工作,但是我并没有真正了解它的所有细节,所以我可能会遗漏一些显而易见的东西。