W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
定制轉(zhuǎn)換器可用于擴(kuò)展對用戶定義類型的類型支持。
org.springframework.core.convert.converter.Converter
接口。
用戶定義的類型需要映射到Spanner支持的基本類型之一:
com.google.cloud.ByteArray
com.google.cloud.Date
com.google.cloud.Timestamp
java.lang.Boolean
, boolean
java.lang.Double
, double
java.lang.Long
, long
java.lang.String
double[]
long[]
boolean[]
enum
類型
ConverterAwareMappingSpannerEntityProcessor
,然后必須將其作為SpannerEntityProcessor
的@Bean
使用。
例如:
我們希望在Trade
POJO上有一個(gè)類型為Person
的字段:
@Table(name = "trades") public class Trade { //... Person person; //... }
其中Person是一個(gè)簡單的類:
public class Person { public String firstName; public String lastName; }
我們必須定義兩個(gè)轉(zhuǎn)換器:
public class PersonWriteConverter implements Converter<Person, String> { @Override public String convert(Person person) { return person.firstName + " " + person.lastName; } } public class PersonReadConverter implements Converter<String, Person> { @Override public Person convert(String s) { Person person = new Person(); person.firstName = s.split(" ")[0]; person.lastName = s.split(" ")[1]; return person; } }
這將在我們的@Configuration
文件中進(jìn)行配置:
@Configuration public class ConverterConfiguration { @Bean public SpannerEntityProcessor spannerEntityProcessor(SpannerMappingContext spannerMappingContext) { return new ConverterAwareMappingSpannerEntityProcessor(spannerMappingContext, Arrays.asList(new PersonWriteConverter()), Arrays.asList(new PersonReadConverter())); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: