1

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

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

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

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

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

这在 EclipseLink 中可行吗?

问候, 约臣

4

1 回答 1

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 使用。

于 2012-03-14T15:18:26.890 回答