代码之家  ›  专栏  ›  技术社区  ›  aronp

JDO(GWT)中单个类的多个表

  •  2
  • aronp  · 技术社区  · 15 年前

    我在GWT上有一个使用JDO持久化的数据类,需要分别存储两组相同的类,一组是原始数据,另一组是合并和处理的。
    有没有一种简单的方法可以做到这一点,就是在没有运气的情况下试图在文档中找到它。

    谢谢, 阿龙。

    2 回复  |  直到 15 年前
        1
  •  2
  •   DataNucleus    15 年前

    不,JDO和JPA都不支持这样的东西。显然,您可以对该类进行子类划分,并将合并/处理的数据的子类存储在它自己的表中

        2
  •  1
  •   aronp    15 年前

    作为一个更新,考虑到有很多方法试图将数据子类化或嵌入到另一个类中,其中很多方法(在GWT上)都不太好用,这里有两个模式可以工作。第一个特点是主键在基类中,继承策略是子类表。注意,这意味着不能持久化基础数据。第二个机制如下所示。其中基类是可以持久化的常规类,派生类具有customStrategy=“complete table”的继承策略

    (一)

    @PersistenceCapable
    
    @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
    
    public class BaseData  
    {
        @PrimaryKey
    
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        public Long id;
    
        // scan data
        @Persistent
        public String Data1 = "";
        //  etc...
    }
    
    @PersistenceCapable
    public class ProcessedData  extends BaseData
    {
        // No key
        // Thats it
    }
    
    @PersistenceCapable
    public class RawData  extends BaseData
    {
        // No key
        // Thats it
    }
    

    2个)

    @PersistenceCapable
    @Inheritance(customStrategy = "complete-table")
    
    public class ProcessedData  extends RawData 
    {
    // thats it
    }
    
    @PersistenceCapable
    public class RawData 
    {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        public Long id;
    
        @Persistent
        public String Data1 = "";
    
        // ...
    }
    
    推荐文章