与将持久性类型设置为在数据库中持久化的属性的属性相比,动态属性具有非持久性值
SAP Hybris Commerce 允许使用称为 jalo 属性或 jalo-only 属性的非持久性属性。
Jalo 属性已弃用,取而代之的是动态属性。
我仍然看到 Hybris 仍在使用两者。
那么,它们之间有什么区别呢?
每个的目的是什么?
谢谢
实际上,答案的一半在您的问题中,Jalo和Dynamic属性都用于为 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,而应使用动态属性。
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |