Hybris 灵活查询不适用于客户类型

Hybris flexible query is not working for Customer type

我运行下面查询通过 https://localhost:9002/console/flexsearch#

当我运行下面的查询没有报错

SELECT   
           *
            FROM { Customer  AS p} 
            where p_name IS NOT NULL

但是,当我 运行 这样做时,它给我一个错误。

SELECT *
            FROM { Customer  AS p} 

            where {p_name} =' zohan'

当您使用灵活搜索时,您需要通过代码来引用属性和类型。 Hybris 然后将此查询转换为 sql 查询。所以在你的情况下:

SELECT * FROM {Customer  AS p} WHERE {p.name} IS NOT NULL

对灵活查询和 SQL 查询感到困惑?

Hybris 使用灵活的查询语法,您可以简单地使用 TypeCode (Customer) 及其属性(名称)进行查询。 Hybris 在内部将您的查询转换为相应的数据库语法。在 DB 中,每个列名都以 p_ 为前缀。所以如果你想直接使用 SQL 查询你应该使用 p_name 否则灵活搜索使用模型属性名称(name 在你的情况下)

灵活的搜索语法

SELECT * FROM {Customer} WHERE {name} IS NOT NULL

SELECT * FROM {Customer  AS c} WHERE {c.name} IS NOT NULL

SQL查询

你可以 运行 从 HAC > console > FlexibleSearch > SQL query

SELECT * FROM users WHERE p_name is not null

参考FlexibleSearch Samples and other Tips and Tricks