当前位置: 首页 > 面试题库 >

扩展JPA实体以添加属性和逻辑

齐文林
2023-03-14
问题内容

我需要知道是否有可能通过扩展将某些属性和行为添加到某些POJO JPA实体(使用 hibernate
提供程序),然后使EntityManager返回扩展对象而不是仅返回pojo实体,如以下示例:

POJO JPA实体类

@Entity
@Table("test")
public class Test implements Serializable {
}

扩展类

public class ExtendedTest extends Test {
...
}

获取扩展类的对象

List<ExtendedTest> extendedList = entityManager.createNamedQuery("ExtendedTest.findByFoo").setParameter("foo", "bar").getResultList();

我评估的另一种可能的方法是使用复合实体扩展功能,并委派所有设​​置方法和获取方法,但这可能意味着需要处理大量表:

public class ExtendedTest2 {
    private Test test;

    public ExtendedTest2(Test test) {
        this.test = test;
    }

    public getFoo() {
        return test.getFoo();
    }

    public getBar() {
        return test.getBar();
    }

    ...
}

任何建议将不胜感激。


问题答案:

使用 @Inheritance

@Entity
@Table(name="TEST")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Test {
    ...
}

@Entity
public class ExtendedTest 
    extends Test {
    ...
}

要么 @MappedSuperclass

@MappedSuperclass
public class Test {
    ...
}

@Entity
public class ExtendedTest 
    extends Test {
    ...
}


 类似资料:
  • 问题内容: 我当前的目标是添加一个新的客户属性(具有类型),该属性应显示为带有预定义选项的选择(已从模型加载,其中的条目可在后端进行编辑)。我正在努力正确使用方法,尤其是指定正确的源选项。另一个问题是新属性未保存到eav_entity_attribute表中 我使用的是Magento CE 1.5.1.0 问题答案: 这是渲染器基本属性的代码: 添加属性的不寻常步骤是,这似乎是客户属性所独有的。没

  • 本文向大家介绍core-data 向实体添加属性,包括了core-data 向实体添加属性的使用技巧和注意事项,需要的朋友参考一下 示例 在属性部分下,将属性添加到模型中。此按钮是该部分底部的加号。您可以添加与您的应用相关的任何属性。您可以从布尔值到日期等多种类型的选项中进行选择。“检查器”面板还具有多个选项。 这是Inspector面板,允许您向其中添加属性Attribute,例如,如果要添加电

  • 若要添加一个新的实体,点击工具栏的 “实体”按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的实体,简单地从模型选项卡拖放实体到画布。 如果图表符号设置为默认, 图标代表属性为一个主键。而 图标则代表属性为一个索引。 【注意】如果你按住 Control 键并点按属性,你可以选择添加、插入、删除、重命名属性及设置属性为主键。 在画布中实体对象的弹出式菜单选项包括: 选项 描述 设计

  • 我扩展了JavaFX按钮,如下所示: 现在我希望能够在我的FXML中使用它。大概是这样的: 我如何做到这一点。

  • 若要添加一个新的实体,点击工具栏的 “实体”按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的实体,简单地从模型选项卡拖放实体到画布。 如果图表符号设置为默认, 图标代表属性为一个主键。而 图标则代表属性为一个索引。 【注意】如果你右击属性,你可以选择添加、插入、删除、重命名属性及设置属性为主键。 在画布中实体对象的弹出式菜单选项包括: 选项 描述 设计实体 在“实体设计器”中编

  • 我可能需要一些帮助,因为我被这些文件弄糊涂了: 我有一个JPA母公司: 和孩子: 如果我只是增加联系人,我希望JPA能够建立这种关系。 e、 g: 现在发生的是: 触点插入DB(良好) 使用providerX。联系人中的id。提供者列(良好) provider\u contact表中未显示任何关系条目 我知道我可以将联系人设置为提供者的属性<代码>providerX。联系人。添加(c)。。。回购。