Hybris中jalo属性和dinamic属性有什么区别?

时间:2017-11-24 06:04:34

标签: hybris

与持久性类型设置为属性的属性相比,动态属性具有非持久性值

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

不推荐使用Jalo属性,并将其替换为动态属性。

我仍然看到Hybris仍在使用它们。

那么,每个人之间有什么区别?

每个人的目的是什么?

由于

1 个答案:

答案 0 :(得分:3)

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

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

您可能知道Hybris中的项目类是使用 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并使用动态属性。