在 hybris 后台更改对象标识符

Posted

技术标签:

【中文标题】在 hybris 后台更改对象标识符【英文标题】:Change object identifier in hybris backoffice 【发布时间】:2018-10-26 16:51:15 【问题描述】:

我想在后台添加一个扩展,以便非编程人员可以将新对象(已定义类型)添加到数据库中。

我几乎完成了:

我定义了两个项目:offer 和 tile(它们的关系是一对多)

我实现的是有可能在后台添加新的报价。 当您添加它并单击以进行编辑时,您还可以向此报价添加一个图块 - 形成下拉列表(如果存在任何图块)或创建一个新图块,该图块将自动添加到其表中并进行编辑报价。

但是,下拉列表的表示是不可接受的,见下:

screenshot from backoffice

如您所见,现有图块的标识符(在 [] 内)是它的 PK - 这显然不是一个好的标识符。我想在那里注入一个值,而不是从瓦片的其他属性之一(这也是唯一的),以便有人可以轻松识别要添加的瓦片。

负责它的机制在哪里?如何覆盖它。我试图覆盖 tile 类中的 toString 方法,不幸的是无济于事

【问题讨论】:

【参考方案1】:

您需要为您的自定义模型自定义 backoffice-config.xml。对于您的 Tile 模型,您可以使用以下内容:

<context merge-by="type" type="Tile" component="base">
    <y:base xmlns:y="http://www.hybris.com/cockpit/config/hybris">
        <y:labels>
             <y:label>nameOfTile</y:label>
        </y:labels>
    </y:base>
</context>

【讨论】:

以上是关于在 hybris 后台更改对象标识符的主要内容,如果未能解决你的问题,请参考以下文章

更改 Hybris 中已经存在的列的长度?

@IdClass 使用 JPA 和 Hibernate 生成“实例标识符已更改”

在旧代码中创建基于类型的标识号,更改最少

逻辑复制-更改复制标识(REPLICA IDENTITY)

Hybris - 如何在后台为客户添加导出导入小部件?

通过后台删除 hybris 中的动态属性