0

我有一个集合如下

application
 * _id
 * name
 * desc
 * settings
 ** _id
 ** magento
 *** name
 *** keys

我使用以下对象来映射文档

@Entity
@Table(name = "applications")
public class ApplicationEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Type(type = "objectid")
private String id;

@Column(name = "applicationName")
private String name;

@Column(name = "desc")
private String desc;

@Embedded
@Column(name = "settings.magento")
private MagentoSettings magentoSettings;

但是,无法映射对象“MangetoSettings”,它返回 null。

我的问题是,如何在不声明对象中的父级(设置)的情况下映射子文档(magento)?

假设“设置”文档仅包含“Magento”,如果声明具有单个属性的“设置”对象将被浪费。

谢谢

4

1 回答 1

0

我在这里的 Jboss Hibernate 文档中找到了答案

您可以覆盖用于嵌入对象的属性的列名。但是您需要知道默认列名是嵌入属性的串联, a 。(点)和嵌入属性(递归用于多个级别的嵌入对象)。

AttributeOverrides({
    @AttributeOverride(name="name", column=@Column(name="settings.magento.name")),
    @AttributeOverride(name="key", column=@Column(name="settings.magento.key"))
    })
private MagentoSettings magentoSettings;

谢谢

于 2015-08-23T17:26:17.173 回答