0
我是EJB JPA的新手。 我在@Inheritance與父母和孩子混淆。JPA @父母與子女的繼承
@Entity
@Table(name = "owner", catalog = "estate")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="ownerType",discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue("owner")
public class Owner extends UUIDSupport implements
UserDetails,java.io.Serializable{
....
}
@Entity
@DiscriminatorValue("ownerInCommittee")
public class OwnerInCommittee extends Owner {
....
}
CREATE TABLE `owner` (
`id` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`username` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`idCard` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`phone` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`duty` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, // OwnerInCommittee
`ownerType` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
現在我想在DB中找到'所有者',而不是將其更改爲'OwnerInCommittee'。 因爲java不能強制將父母更改爲孩子。 我應該在DB中找到'owner',將屬性複製到新的'OwnerInCommittee'中,而不是
刪除DB中的所有者。之後,PERSIST新的「所有者委員會」。
有沒有更好的方法?
請參閱http://viralpatel.net/blogs/hibernate-inheritence-table-per-hierarchy-mapping/ –