Spring Cloud Datastore 用于集合的自定義轉換器

2024-01-12 09:33 更新

用戶可以提供從List<?>到自定義集合類型的轉換器。僅需要讀取轉換器,在寫端使用Collection API將集合轉換為內部列表類型。

集合轉換器需要實現(xiàn)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

公眾號
微信公眾號

編程獅公眾號