【问题标题】:How to add custom (user defined) properties to entities with EclipseLink?如何使用 EclipseLink 向实体添加自定义(用户定义的)属性?
【发布时间】:2012-03-14 03:45:51
【问题描述】:

我想将用户定义的自定义字段添加到 EclipseLink 中的现有实体。出于性能原因,我希望它们直接存储在实体的表中,并且我还希望它们成为“一等公民”,即可用于查询。

从实现的角度来看,实体应该有两种方法来设置和获取自定义字段:

public Object getCustomProperty(String key) { ... }
public void setCustomProperty(String key, Object value) { ... }

在设置自定义属性foo 时,EclipseLink 应将该值存储在实体表中名为custom_foo 的字段中。

从最终用户的角度来看,我想提供一个 GUI,用户可以在其中定义和管理自定义字段,然后将其动态添加到数据库中或从数据库中删除。

这在 EclipseLink 中可行吗?

问候, 乔辰

【问题讨论】:

    标签: eclipselink custom-properties


    【解决方案1】:

    查看 EclipseLink 的可扩展性功能 http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Extensible_Entities 这支持添加列: http://wiki.eclipse.org/EclipseLink/DesignDocs/368365 看起来有点像你要求的 - 除了它不应该存储在主表中的冲突声明,然后声明它应该存储在实体表的“custom_foo”列中。

    您需要创建用于创建映射的 GUI。 Eclipselink 附带一个从 orm.xml 文件读取的元数据源实现,因此如果您的 GUI 无法写入 orm 文件,您可能必须编写自己的实现以供 EclipseLink 使用。

    【讨论】:

    • 超级。这正是我所需要的。删除了意外的“不要”,谢谢!
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多