当前位置: 首页 > 知识库问答 >
问题:

从Hibernate中的数据库加载属性?

蒋烨然
2023-03-14

我有三个类具有类层次结构

> < Li > < p > < code > parent class . Java

having commons properties used for both ChildClass1 and ChildClass2.

子类 1 扩展父类

具有用于此ChildClass1的属性,它还使用来自父类的一些常见属性

< code>ChildClass2扩展ParentClass

具有用于此子类2的属性,它还使用父类中的一些公共属性

所有这些属性都包含在两列表中

**Key               value**     Type
---------------------------------------
propertyKey1    propertyValue1   Child1
propertyKey2    propertyValue2   Child1
propertyKey3    propertyValue3   Child2
propertyKey4    propertyValue4   Child2
propertyKey5    propertyValue5   CommonPorperty
..              ..               ..
propertyKeyn    propertyValuen   ..

现在我不确定如何从Hibernate继承加载它们?

为愚蠢的问题道歉...

提前谢谢

共有1个答案

柏阳炎
2023-03-14

您需要添加一个列“Discriminator”,以通知Hibernate在使用多个类型处理同一个表时应该加载哪个实例。参见示例:

@Entity
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
@Table(name = "PARENT_TABLE")
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.INTEGER)
public abstract class ParentEntity implements java.io.Serializable {

    private long id;
    private String commonValue1;

    @Id      
    @Column(name = "ID", nullable = false)
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Column(name = "Common_Value1")
    public String getCommonValue1(){
        return commonValue1;
    }

    public void setCommonValue1(String commonValue1){
        this.commonValue1 = commonValue1;
    }
}


@Entity
@DiscriminatorValue("1")
public class ChildEntity1 extends ParentEntity {

    private String child1Value;

    @Column(name = "Child1_Value")
    public String getChild1Value(){
        return child1Value;
    }

    public void setChild1Value(String child1Value){
        this.child1Value = child1Value;
    }
}

@Entity
@DiscriminatorValue("2")
public class ChildEntity2 extends ParentEntity {

    private String child2Value;

    @Column(name = "Child2_Value")
    public String getChild2Value(){
        return child2Value;
    }

    public void setChild2Value(String child2Value){
        this.child2Value = child2Value;
    }
}
 类似资料:
  • 问题内容: 我正在尝试使用Java + Hibernate + Spring将CSV文件加载到mySQL数据库中。我在DAO中使用以下查询来帮助我加载到数据库中: 我有一些想法可以从http://dev.mysql.com/doc/refman/5.1/en/load- data.html 使用它,以及如何从hibernate +spring应用程序将csv文件导入到mysql中? 但是我得到了错

  • 我正在研究一个血液供应链的模拟,并创建和导入了一些表来管理各种代理群体的主数据,如血液处理中心、检测中心、医院等。这些表包含所述代理的名称和lat/lon坐标。 这些表都是MySQL数据库的一部分,我用它的接口连接到AnyLogic,正如我所说,导入了这些表。到目前为止还不错,但是,当我想为每个数据库条目创建代理群体并将代理的参数分配到表的各个字段时,AnyLogic不能将名称(在MySQL中为V

  • 我需要你在这个问题上给我建议,在一个spring boot应用程序中,我从数据库加载一些属性,比如(cron periods,email data),我需要在应用程序上下文中导出这些属性,以便用加载的数据来spring构建相应的beans。我怎么能这样做?

  • 问题内容: 是否可以使用Custom Spring PropertyPlaceholderConfigurer从数据库加载属性?提供给自定义PropertyPlaceholderConfigurer的数据源是否有可能在类路径中使用特定的属性文件? 我无法通过以下链接找到满意的答案? http://www.mkyong.com/spring/spring-propertyplaceholdercon

  • 问题内容: 嗨,我正在尝试使用hibernate将文件中的数据加载到Mysql DB。 这是查询, 但是我收到以下错误, 如何重写此查询,以便正确执行此查询? 提前致谢! 问题答案: 尝试创建参数化查询 我不是Hibernate专家,但这可以工作:

  • 是否可以用Camunda从数据库中加载BPMN XML,而不是在web应用程序中使用文件中的XML? 我们希望能够动态地添加新的工作流,而不是用定义部署新的WAR,这个想法是添加到数据库中,并通知webapp有新的定义。 谢谢,斯科特。