@Documented @Retention(value=RUNTIME) @Target(value=FIELD) public @interface Dynamic
Used mainly to annotate Map
fields, indicates the field should have its key parsed whenever reading the
document from Solr and formatted whenever being written to Solr based on wildcard field name defined for it.
Example:
Definition:
class MyBeanClass { @Id private String id; @Dynamic @Field("*_s") private Map<String, String> values; // setters and getters }
Use:
Map<String, String> values = new HashMap<>(); values.put("v1", "value for key v1"); values.put("v2", "value for key v2"); MyBeanClass bean = new MyBeanClass(); bean.setId("id-bean-1"); bean.setValues(values); solrTemplate.saveBean(bean); solrTemplate.commit(); ... MyBeanClass bean = solrTemplate.getById("id-bean-1", MyBeanClass.class); bean.getValues().get("v1");The result on Solr side will be a document with the foolowing structure:
{ "id": "id-bean-1", "v1_s": "value for key v1", "v2_s": "value for key v2", }
Copyright © 2011–2018 Pivotal Software, Inc.. All rights reserved.