这是我的impex:
INSERT_UPDATE ReferenceProductAttributeValue;leaf(code,name[lang=de])[unique=true];newvalue(pk)
我必须首先输入newvalue(pk)的pk,units.p_code="PCE"
我必须从我的数据库 e 中获取它。这是我的查询,它在我的 MySQL 中完美运行:
SELECT `units`.`PK` FROM `my_schema`.`units` WHERE `units`.`p_code`="PCE";
我已经尝试过这个:
INSERT_UPDATE ReferenceProductAttributeValue;leaf(code,name[lang=de])[unique=true];newvalue(pk)
;001:Antiviren-Software (Client-Betriebssystem);
"#%
impex.initDatabase( <myDburl>, <myUser>, <myPassword>, <MyDriver.class>);"
"#%
impex.includeSQLData(
"" SELECT ""+
"" units.PK ""+"" FROM my_schema.units ""+
"" WHERE ""+
"" units.p_code ='PCE'""
);"
还有这个:
INSERT_UPDATE ReferenceProductAttributeValue;leaf(code,name[lang=de])[unique=true];newvalue(pk)
;001:Antiviren-Software (Client-Betriebssystem);
"#%
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
flexibleSearchService = Registry.getApplicationContext().getBean(""flexibleSearchService"");
query = "" SELECT {units.PK} FROM {my_schema.units} WHERE {units.p_code} LIKE '%PCE%' "";
flexibleSearchQuery = new FlexibleSearchQuery(query);
resultIterator = flexibleSearchService.search(flexibleSearchQuery).getResult().iterator();"
但它没有用。有人可以给我一个提示吗?
新尝试:
INSERT_UPDATE ReferenceProductAttributeValue;newvalue(pk);leaf(code,name[lang=de])[unique=true]
#% beforeEach:
#% import de.hybris.platform.core.model.product.UnitModel;
#% import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
#% import de.hybris.platform.jalo.flexiblesearch.* ;
#% import de.hybris.platform.core.Registry;
#% flexibleSearchService = Registry.getApplicationContext().getBean("flexibleSearchService");
#% query = "SELECT {" + UnitModel.PK + "} FROM {" + UnitModel._TYPECODE + "} WHERE {" + UnitModel.CODE + "} = 'PCE' ";
#% flexibleSearchQuery = new FlexibleSearchQuery(query);
#% resultIterator = flexibleSearchService.search(flexibleSearchQuery).getResult().iterator().next();
#% beforeEach: end \
;001:Antiviren-Software (Client-Betriebssystem)
现在我不再有错误,但仍然没有我在 newvalue 中搜索的 pk。有人能帮我吗?谢谢!