Hybris 中的 jalo 属性和动态属性有什么区别?

What is the difference between jalo attribute and dinamic attribute in Hybris?

与持久性类型设置为 属性 且持久保存在数据库中的属性相比,动态属性具有非持久性值

SAP Hybris Commerce 允许一种称为 jalo 属性或 jalo-only 属性的非持久属性。

Jalo 属性已弃用并由动态属性取代。

我仍然看到 Hybris 仍在使用两者。

那么,两者有什么区别呢?

每个的目的是什么?

谢谢

实际上一半的答案在你的问题中,JaloDynamic 属性都用于为项目创建非持久属性在 Hybris 中。

但为什么我们需要非持久属性?

正如您所知,Hybris 中的 Items class 是使用 ant 命令生成的,因此无法添加 业务逻辑手动到项目(因为每次我运行 ant命令都会生成一个新项目,我的逻辑也会被删除)

我举个例子:

//generated item
class PersonModel {
    //persisted attributes
    String firstname;
    String lastName;

    //non-persisted attribute = calculated attribute
    String getFullName() {
        return firstname + " " + lastname;
    }
}

我们都同意 fullName 不应该保存在数据库中,所以假设 getFullName 是手动添加的,那么我之前解释过如果我们 运行 ant clean all 命令 PersonModel 将再次重新生成并且 getFullName() 也将被删除。

所以这就是 Jalo 属性创建的目的,实际上 Jalo 项目只生成一次并且永远不会被删除(可以手动删除)所以我们可以在 Jalo 项目中添加所有计算的属性而不用担心被删除。

//generated item is going to 
//be re-generated after each ant clean all
class PersonModel {
    //persisted attributes
    String firstname;
    String lastName;
}

//Jalo item will be generated once 
//and will never be removed after that
class PersonJalo {

    //non-persisted attribute = calculated attribute
    String getFullName() {
        return firstname + " " + lastname;
    }
}

Jalo 属性现已弃用,取而代之的是动态属性,因此我们不应该再使用 jalo,而是使用动态属性。