【问题标题】:Hibernate: Reuse hibernate classHibernate:重用休眠类
【发布时间】:2012-06-04 10:20:25
【问题描述】:

我在数据库中有 2 个包含确切列的表。

我想知道是否可以有一个抽象类并将其扩展为 2 表。

示例抽象表

table 一个扩展表。 表 b 扩展表。

我已阅读继承,但它似乎不符合我的需要 http://openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/docs/manual/jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single

我不知道如何指定表名。

【问题讨论】:

    标签: hibernate inheritance


    【解决方案1】:

    这对我有用:

    public abstract class Table {
    
        private String commonField;
    
        @Column(name = "COMMON_FIELD")
        public String getCommonField() {
            return commonField;
        }
    
        public void setCommonField(String commonField) {
            this.commonField = commonField;
        }
    
    }
    
    @Entity
    @Table(name = "table_a")
    public class TableA extends Table {
    
        // table_a fields only
    
    }
    
    @Entity
    @Table(name = "table_b")
    public class TableB extends Table {
    
        // table_b fields only
    
    }
    

    【讨论】:

    • 如果:列名不同怎么办?
    • 您说数据库中有2个表具有完全相同的[相同]列。如果名称不同,则无法分解它们,因为两列实际上并不相同。
    • 我今天刚刚测试了这个。由于某种原因只是部分工作,hibernate不会查看抽象类来获取字段,而只会查看主类。所以当你更新时。由于某些原因,抽象类不会被初始化。
    • 您是否也尝试在抽象类上添加@Entity
    • 我试过了,但它也不起作用......我会回家再试一次..有没有办法使用休眠策略来实现这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多