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.beanutilscopyProperties(Object dest,Object orig)
将是您使用@MappedSuperclass编写的非常好的示例代码。