Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:使用一个类对具有类似结构的多个表进行建模_Java_Hibernate_Jpa_Orm - Fatal编程技术网

Java Hibernate:使用一个类对具有类似结构的多个表进行建模

Java Hibernate:使用一个类对具有类似结构的多个表进行建模,java,hibernate,jpa,orm,Java,Hibernate,Jpa,Orm,我有两张结构相同的表: Table1: tab_id field1 field2 Table2: id tab_id field1 field2 我想创建一个类来建模这两个表,例如: @Id tabId @Colummn(name="field1") field1 @Colummn(name="field2") field2 然后执行诸如从一个表读取、更改某些内容并写入另一个表的操作: myObject = find in Table1 ... change myObject ...

我有两张结构相同的表:

Table1: 
tab_id
field1
field2


Table2:
id
tab_id
field1
field2
我想创建一个类来建模这两个表,例如:

@Id tabId
@Colummn(name="field1") field1
@Colummn(name="field2") field2
然后执行诸如从一个表读取、更改某些内容并写入另一个表的操作:

myObject = find in Table1 ...
change myObject ...
save myObject to Table2 ...
你知道我该怎么做吗

我最好的猜测是使用MappedSuperclass,但我必须在每个子类实体中包含一个构造函数,该构造函数接受父MappedSuperclass并复制每个字段


编辑-我想我可以这样做:

@MappedSuperclass 
@Data
class MySuper {
  MySuper(MySuper other) {
    // copy...
  }
  @Id tabId;
  @Colummn(name="field1") field1;
  @Colummn(name="field2") field2;
}    

@Table(name="Table1", ...) 
Table1Entity extends MySuper {
    TableEntity(MySuper other) {
        super(other);
    }
}

您可以使用
MappedSuperclass
。复制域org.apache.commons.beanutils.beanutils
copyProperties(Object dest,Object orig)
将是您使用@MappedSuperclass编写的非常好的示例代码。