d簧 – 定制Cassandra转换器

d簧 – 定制Cassandra转换器,第1张

概述我开始寻找一个很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体.问题开始是因为我的实体中的某些字段不支持cassandra,例如joda DateTime.解决方法是在java.util.Date类型的同一实体中使用其他字段而不是joda DateTime,使用@Transient标记不需要的字段.但这不干净,所以

我开始寻找一个很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体.问题开始是因为我的实体中的某些字段不支持cassandra,例如joda DateTime.

解决方法是在java.util.Date类型的同一实体中使用其他字段而不是joda DateTime,使用@TransIEnt标记不需要的字段.但这不干净,所以我开始寻找自动自定义转换.

目前spring-data-cassandra参考文献没有提供如何注册自定义转换器的信息. http://docs.spring.io/spring-data/cassandra/docs/current/reference/html/#cassandra.custom-converters

是否可以在CassandraSessionfactorybean中注册自定义转换器(如此处为Spring Data Cassandra LocalDateTime Conversion)?

这是我的代码
@组态
公共课CassandraConfig {

@Value("${cassandra.contactpoints}")private String cassandraContactPoint;@Value("${cassandra.port}")private int cassandraPort;@Value("${cassandra.keyspace}")private String cassandraKeySpace;@Beanpublic CassandraClusterfactorybean cluster() {    CassandraClusterfactorybean cluster = new CassandraClusterfactorybean();    cluster.setContactPoints(cassandraContactPoint);    cluster.setPort(cassandraPort);    return cluster;}@Beanpublic CassandraMapPingContext mapPingContext() {    return new BasicCassandraMapPingContext();}@Beanpublic CassandraConverter converter() {    return new MapPingCassandraConverter(mapPingContext());}@Beanpublic CassandraSessionfactorybean session() throws Exception {    CassandraSessionfactorybean session = new CassandraSessionfactorybean();    session.setCluster(cluster().getobject());    session.setKeyspacename(cassandraKeySpace);    session.setConverter(converter());    session.setSchemaAction(SchemaAction.NONE);    return session;}@Beanpublic CassandraOperations cassandratemplate() throws Exception {    return new Cassandratemplate(session().getobject());}@Beanpublic ConversionService getConversionService() {    ConversionServicefactorybean bean = new ConversionServicefactorybean();    bean.setConverters(new HashSet<>(getConverters()));    bean.afterPropertIEsSet();    return bean.getobject();}private Set

}最佳答案当您创建CassandraCustomConversions bean时,Spring Cassandra的自定义转换会起作用.只需添加自定义转换器,默认转换器就会保留.下面是我的@Configuration类.

@BeanCassandraCustomConversions cassandraCustomConversions() {    List

我正在使用基于SpringBoot 2.0.0.RELEASE的spring-boot-starter-data-cassandra. 总结

以上是内存溢出为你收集整理的d簧定制Cassandra转换器全部内容,希望文章能够帮你解决d簧 – 定制Cassandra转换器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1256105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)