Не могу импортировать в impex для работы, которую я создал для кода (hybris) - PullRequest
0 голосов
/ 03 мая 2018

Я следовал этому уроку https://www.stackextend.com/hybris/everything-about-cronjobs-in-hybris-part-2/

но вместо строки я использовал параметр customerlist. вот так:

    <attribute qualifier="customers" type="CustomersList">
                <modifiers read="true" write="true" initial="false" optional="true" partof="true"/>
                <persistence type="jalo"/>//i changed this to  dynamic, because jalo gives error
            </attribute>

который я определил в

 <collectiontype code="CustomersList" elementtype="Customer" autocreate="true" generate="true" type="list"/>

внизу урока написано импортировать эти

INSERT_UPDATE ServicelayerJob   ;code[unique=true]  ;springId


INSERT_UPDATE HelloWorldCronJob ;code[unique=true]  ;job(code)      ;firstName
                                ;helloWorldCronJob  ;helloWorldJob  ;Mouad

Сначала я импортировал, и все прошло успешно.

но во-вторых, я должен измениться, потому что у меня больше нет этой области имени. Я изменил его в список клиентов, поэтому я должен использовать другую вещь. Также я попытался сделать его пустым, но ошибки всегда одинаковы:

,,,, строка 2: невозможно создать UsersFindCronJob со значениями ItemAttributeMap [реестр: ноль, тип:, данные: {code = usersFindCronJob, job = usersFindJob (8796094628340)}] из-за не может найти bean-компонент [UsersFindCronJob_customersAttributeHandler] настроен для динамического атрибута [UsersFindCronJob.customers] из расширение [trainingcore], строка 3: невозможно создать UsersFindCronJob с значения ItemAttributeMap [реестр: ноль, тип:, данные: {code = usersFindCronJob, job = usersFindJob (8796094628340)}] из-за не может найти bean-компонент [UsersFindCronJob_customersAttributeHandler] настроен для динамического атрибута [UsersFindCronJob.customers] из расширение [trainingcore]; usersFindCronJob; usersFindJob; Zohan

пример импорта с ошибкой:

INSERT_UPDATE UsersFindCronJob;code[unique=true];job(code);customers
;usersFindCronJob;usersFindJob;testcustomerbutthisisnotcustomerthisisstring

что мне делать?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Типы коллекций устарели. Предпочитаю отношения.

<relations>
    <relation code="UsersFindCronJob2CustomerRelation" localized="false" >
        <sourceElement type="UsersFindCronJob" cardinality="many" qualifier="usersFindCronJob" />
        <targetElement type="Customer" cardinality="many" qualifier="customer" />
    </relation>
</relations>

Затем вы можете импортировать cronjob следующим образом:

INSERT_UPDATE UsersFindCronJob;code[unique=true];job(code);customer(uid)
;usersFindCronJob;usersFindJob;myCustomerUid1, myCustomerUid2, myCustomerUid3
0 голосов
/ 03 мая 2018

Если тип персистентности является динамическим:

<persistence type="dynamic"/>

Затем вам нужно создать bean-компонент Spring, который должен отвечать за вычисление динамического значения на основе других постоянных атрибутов

Примером динамического атрибута может быть полное имя Клиента, которое может быть вычислен путем объединения следующим образом: имя + фамилия Где имя и фамилия - это два атрибута, хранящиеся в базе данных (тип персистентности = "свойство")

Если вы хотите, чтобы ваш атрибут хранился в базе данных (и я считаю, что это указано), вам следует установить тип постоянства свойство вместо динамического:

<persistence type="property"/>
...