使用灵活搜索读取集合类型数据

use*_*975 2 sap-commerce-cloud

如何使用灵活搜索查看Hybris中Collection类型存储的数据列表?

我在某处读到它存储为 PK,那么是否可以以某种方式解析它?

Fre*_*ded 5

“CollectionTypes 基于 Java Collection 类。”

CollectionType 数据库字段的最大长度是有限的,因此可能会因记录过多而导致其值被截断。此外,CollectionTypes 的值以 CSV 格式写入,而不是以标准化方式写入。Hybris 建议尽可能使用 RelationTypes 而不是 CollectionType。

集合如何存储值:

  1. 如果 CollectionType 包含 AtomicTypes,则这些值将作为二进制字段存储在数据库中。
  2. 如果 CollectionType 存储项目集合,则项目的主键 (PK) 将以字符串形式存储在数据库中(PK 列表)。

在此输入图像描述

优势 :

  1. 由于一个 CollectionType 实例的所有值都存储为一个字段,因此读取和写入值的速度非常快,因为它是在单个数据库访问中完成的(尤其是使用缓存)。

坏处 :

  1. 如果集合包含大量 PK,则字段值可能会达到数据库实现的字段最大长度,并且条目可能会被截断。

  2. 由于数据库条目仅包含 PK,而不包含项目,因此您无法直接对条目运行数据库搜索。相反,您需要通过 Java 在内存中运行搜索,这通常比直接在数据库中搜索要慢。