我正在尝试在项目中使用@EnableRedisRepositories和@EnableMapRepositories,但收到以下错误消息:
相关原因:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“redisConverter”的bean时出错:通过构造函数参数0表示的不满意依赖:无法转换类型[org.springframework.data.keyvalue.core.mapping的参数值。 context.KeyValueMappingContext] 到所需类型 [org.springframework.data.redis.core.mapping.RedisMappingContext]:无法将类型“org.springframework.data.keyvalue.core.mapping.context.KeyValueMappingContext”的值转换为所需类型“ org.springframework.data.redis.core.mapping.RedisMappingContext'; 嵌套异常是 java.lang.IllegalStateException:无法将“org.springframework.data.keyvalue.core.mapping.context.KeyValueMappingContext”类型的值转换为所需类型“org.springframework.data.keyvalue.core.mapping.context.KeyValueMappingContext”。
那么是否可以在同一个项目中同时使用两者?
我无法通过类继承工作获得Spring Data Rest.
我想要一个JSON端点来处理我所有的具体类.
public interface AbstractFooRepo extends KeyValueRepository<AbstractFoo, String> {}
Run Code Online (Sandbox Code Playgroud)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = MyFoo.class, name = "MY_FOO")
})
public abstract class AbstractFoo {
@Id public String id;
public String type;
}
Run Code Online (Sandbox Code Playgroud)
public class MyFoo extends AbstractFoo { }
Run Code Online (Sandbox Code Playgroud)
现在打电话POST /abstractFoos时{"type":"MY_FOO"},它告诉我:java.lang.IllegalArgumentException: PersistentEntity must not be null!.
这似乎发生了,因为Spring不知道MyFoo.
有没有办法告诉Spring Data REST MyFoo而不为它创建存储库和REST端点?
(我使用的是Spring Boot 1.5.1和Spring Data REST 2.6.0)
Application.java: …
inheritance spring spring-data spring-data-rest spring-data-keyvalue