与持久性类型设置为属性的属性相比,动态属性具有非持久性值
SAP Hybris Commerce允许使用称为jalo属性或jalo-only属性的非持久性属性。
不推荐使用Jalo属性,并将其替换为动态属性。
我仍然看到Hybris仍在使用它们。
那么,每个人之间有什么区别?
每个人的目的是什么?
由于
答案 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并使用动态属性。