Spring data solr не возвращает автоматически сгенерированный идентификатор после сохранения - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь просто сохранить сущность в solr, используя данные пружины, и получить ее автоматически сгенерированный идентификатор.Я вижу, что идентификатор создан, но он не был возвращен мне.Код тривиален

сущность:

@SolrDocument(solrCoreName = "bank")
@Canonical
class Shop {
    @Id
    @Field
    String id
    @Field
    String name
}

хранилище:

@Repository
interface ShopRepository extends SolrCrudRepository<Shop, String>{
}

обработчик:

  @Autowired
    ShopRepository repository

    void save() {
        Shop shop = new Shop()
        shop.name = 'shop1'
        log.info("before {}", shop)
        Shop savedShop = repository.save(shop)
        log.info("after {}", savedShop)
    }

зависимости:

dependencies {
    compile lib.groovy_all
    compile 'org.springframework.boot:spring-boot-starter-data-solr:1.5.10.RELEASE'
}

и результат:

before com.entity.Shop(null, shop1)
after com.entity.Shop(null, shop1)

однако через консоль администратора solr я вижу сгенерированный идентификатор:

{   "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"*:*",
      "_":"1527472154657"}},   "response":{"numFound":3,"start":0,"docs":[
      {
        "name":["shop1"],
        "id":"4db1eb1d-718b-4a38-b960-6d52f9b6240c",
        "_version_":1601670593291223040,
        "name_str":["shop1"]},
      {
        "name":["shop1"],
        "id":"6ad52214-0f23-498d-82b8-82f360ef22f1",
        "_version_":1601670855078707200,
        "name_str":["shop1"]},
      {
        "name":["shop1"],
        "id":"b45b5773-f2b9-4474-b177-92c98810978b",
        "_version_":1601670887722975232,
        "name_str":["shop1"]}]   }}

, а repository.findAll () также возвращает правильный результат с сопоставленным идентификатором.Это функция или ошибка?

...