次のアノテーションを持つ親クラスがあります
@PersistenceCapable(table = "my_parent_table", objectIdClass = Myclass.PK.class, detachable = "true", identityType = IdentityType.APPLICATION)
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
@Discriminator(strategy = DiscriminatorStrategy.VALUE_MAP, column = "discriminator", value = "0")
これで、すべての子クラスに次のアノテーションが付けられました。ただし、アノテーションのvalue
属性@Discriminator
はもちろん異なり、アノテーションの属性も異なりtable
ます@PersistanceCapable
。
@PersistenceCapable(detachable = "true", table = "my_table")
@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
@Discriminator(value = "1")
そして、で注釈が付けられたDAOクラスを介して@Persistence
、PoCとして次のメソッドを使用しています
public List<MyParentClass> test() {
PersistenceManager pm = null;
try {
pm = getPM();
Query q = pm.newQuery(MyParentClass.class);
return (List<MyParentClass>) q.execute();
} catch (Exception e) {
log.error(e.getMessage(), e);
return null;
} finally {
pm.close();
}
}