Spring Cloud Datastore 用于集合的自定义转换器

2024-01-12 09:33 更新

用户可以提供从List<?>到自定义集合类型的转换器。仅需要读取转换器,在写端使用Collection API将集合转换为内部列表类型。

集合转换器需要实现org.springframework.core.convert.converter.Converter接口。

例:

让我们从前面的示例中改进Singer类。我们希望有一个ImmutableSet<Album>类型的字段,而不是Album类型的字段:

@Entity
public class Singer {

	@Id
	String singerId;

	String name;

	ImmutableSet<Album> albums;
}

我们只需要定义一个读转换器:

static final Converter<List<?>, ImmutableSet<?>> LIST_IMMUTABLE_SET_CONVERTER =
			new Converter<List<?>, ImmutableSet<?>>() {
				@Override
				public ImmutableSet<?> convert(List<?> source) {
					return ImmutableSet.copyOf(source);
				}
			};

并将其添加到自定义转换器列表中:

@Configuration
public class ConverterConfiguration {
	@Bean
	public DatastoreCustomConversions datastoreCustomConversions() {
		return new DatastoreCustomConversions(
				Arrays.asList(
						LIST_IMMUTABLE_SET_CONVERTER,

						ALBUM_STRING_CONVERTER,
						STRING_ALBUM_CONVERTER));
	}
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号