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

Tu *_*inh 3 hybris

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

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

Jalo 属性已弃用,取而代之的是动态属性。

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

那么,它们之间有什么区别呢?

每个的目的是什么?

谢谢

Mou*_*kir 7

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

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

您可能知道Hybris 中的Items类是使用ant命令生成的,因此无法手动向项目添加业务逻辑(因为每次我运行 ant 命令时都会生成一个新项目并且我的逻辑也将被删除)

我给你举个例子:

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

    //non-persisted attribute = calculated attribute
    String getFullName() {
        return firstname + " " + lastname;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们都同意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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jalo 属性现在已被弃用并被动态属性取代,因此我们不应再使用 jalo,而应使用动态属性。