何时在Hybris中定义*-spring.xml和*-beans.xml上的bean?他们之间有什么区别?
与将持久性类型设置为在数据库中持久化的属性的属性相比,动态属性具有非持久性值
SAP Hybris Commerce 允许使用称为 jalo 属性或 jalo-only 属性的非持久性属性。
Jalo 属性已弃用,取而代之的是动态属性。
我仍然看到 Hybris 仍在使用两者。
那么,它们之间有什么区别呢?
每个的目的是什么?
谢谢
label(java.lang.String):本地化列名的键.该值在本地化包中查找.如果此字符串为空,则根据@qualifier命名该列.
例如,*-backoffice-config.xml中的type ="AbstractOrder":
<editorArea:tab name="hmc.properties">
...
<editorArea:section name="hmc.common">
<editorArea:attribute qualifier="name"/>
<editorArea:attribute qualifier="description"/>
<editorArea:attribute qualifier="expirationTime"/>
</editorArea:section>
...
</editorArea:tab>
Run Code Online (Sandbox Code Playgroud)
那么,标签属性如何从数据库中获取?我不明白.我试过检查两张桌子
ATTRIBUTEDESCRIPTORS
和
ATTRIBUTEDESCRIPTORSLP
但还不清楚吗?
据我所知,Hybris使用FlexibleSearchQuery来查询数据.因此,要查询数据库,我需要将FlexibleSearchQuery转换为SQL.我仍然不知道Hybris是怎么做到的.你能帮助我理解吗?
我有堆栈跟踪代码如下:
我看到:TranslatedQuery tQuery(类:FlexibleSearch方法:executeSearch)= this.cacheKey.tq(类:FlexibleSearchCacheUnit方法:compute).
那么,this.cacheKey.tq值来自哪里?
PreparedStatementImpl executeQuery
public ResultSet executeQuery() throws SQLException {
if (this.isLoggingActivated()) {
long startTime = System.currentTimeMillis();
ResultSet var5;
try {
var5 = this.wrapResultSet(this.prepStmtPassthru.executeQuery());
} catch (SQLException var9) {
this.getConnection().notifyError(var9);
this.getConnection().logError(var9, "error executing query");
throw var9;
} finally {
this.connection.getDataSource().getLogUtils().logElapsed(Thread.currentThread().getId(), this.connection.getConnectionID(), startTime, "statement", this.preparedQueryWithoutStackTrace, this.assembleQueryFromPreparedStatement());
}
return var5;
} else {
try {
return this.wrapResultSet(this.prepStmtPassthru.executeQuery());
} catch (SQLException var11) {
this.getConnection().notifyError(var11);
this.getConnection().logError(var11, "error executing query");
throw var11;
}
}
}
FlexibleSearchExecutor execute
public SearchResult execute(int start, …Run Code Online (Sandbox Code Playgroud) hybris ×4