本文整理汇总了Java中javax.jdo.annotations.InheritanceStrategy类的典型用法代码示例。如果您正苦于以下问题:Java InheritanceStrategy类的具体用法?Java InheritanceStrategy怎么用?Java InheritanceStrategy使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
InheritanceStrategy类属于javax.jdo.annotations包,在下文中一共展示了InheritanceStrategy类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: populate
import javax.jdo.annotations.InheritanceStrategy; //导入依赖的package包/类
public JDOMetadata populate(JDOMetadata md, String fullyQualifiedClassName, String fieldName) {
PackageMetadata pmd = md.newPackageMetadata(fullyQualifiedClassName.substring(0, fullyQualifiedClassName.lastIndexOf(".")));
ClassMetadata cmd = pmd.newClassMetadata(fullyQualifiedClassName.substring(fullyQualifiedClassName.lastIndexOf(".") + 1));
cmd.setTable(new ClassName(fullyQualifiedClassName).getSimpleName().toLowerCase()).setDetachable(true);
cmd.setPersistenceModifier(ClassPersistenceModifier.PERSISTENCE_CAPABLE);
cmd.setIdentityType(IdentityType.APPLICATION);
cmd.newDatastoreIdentityMetadata().setStrategy(IdGeneratorStrategy.INCREMENT);
cmd.newInheritanceMetadata().setStrategy(InheritanceStrategy.NEW_TABLE);
FieldMetadata fmd = cmd.newFieldMetadata(fieldName);
fmd.setNullValue(NullValue.DEFAULT).setColumn(fieldName);
return md;
}
示例2: searchAndTest
import javax.jdo.annotations.InheritanceStrategy; //导入依赖的package包/类
@SuppressWarnings("rawtypes")
@Test
public void searchAndTest() {
Reflections reflections = new Reflections("org.estatio.dom");
Set<Class<? extends UdoDomainObject>> subtypes =
reflections.getSubTypesOf(UdoDomainObject.class);
for (Class<? extends UdoDomainObject> subtype : subtypes) {
if (subtype.isAnonymousClass() || subtype.isLocalClass() || subtype.isMemberClass() || subtype.getName().endsWith("ForTesting")) {
// skip (probably a testing class)
continue;
}
if (UdoDomainObject.class == subtype || UdoDomainObject2.class == subtype) {
// skip
continue;
}
System.out.println(">>> " + subtype.getName());
// must have a @PersistenceCapable(identityType=...) annotation
final PersistenceCapable persistenceCapable = subtype.getAnnotation(PersistenceCapable.class);
Assertions.assertThat(persistenceCapable).isNotNull();
IdentityType identityType = persistenceCapable.identityType();
Assertions.assertThat(identityType).isNotNull();
if (identityType == IdentityType.DATASTORE) {
// NOT mandatory to have a @DatastoreIdentity, but if does, then @DatastoreIdentity(..., column="id")
final DatastoreIdentity datastoreIdentity = subtype.getAnnotation(DatastoreIdentity.class);
if (datastoreIdentity != null) {
Assertions.assertThat(datastoreIdentity.column()).isEqualTo("id");
}
}
Inheritance inheritance = subtype.getAnnotation(Inheritance.class);
if (inheritance != null && inheritance.strategy() == InheritanceStrategy.SUPERCLASS_TABLE) {
// must NOT have a @Discriminator(..., column="discriminator")
final Annotation[] declaredAnnotations = subtype.getDeclaredAnnotations();
for (Annotation declaredAnnotation : declaredAnnotations) {
if (declaredAnnotation.annotationType() == Discriminator.class) {
Assert.fail("Class " + subtype.getName() + " inherits from " + subtype.getSuperclass().getName()
+ "and has (incorrectly) been annotated with @Discriminator");
}
}
// check if supertype has discriminator
// must have a @Discriminator(..., column="discriminator") on one of its supertypes
final Discriminator superDiscriminator = subtype.getSuperclass().getAnnotation(Discriminator.class);
Assertions.assertThat(superDiscriminator).isNotNull();
Assertions.assertThat(superDiscriminator.column()).isEqualTo("discriminator");
}
if (subtype.getSuperclass().equals(UdoDomainObject.class)) {
// must have a @Version(..., column="version")
final Version version = getAnnotationOfTypeOfItsSupertypes(subtype, Version.class);
Assertions.assertThat(version).isNotNull();
Assertions.assertThat(version.column()).isEqualTo("version");
}
}
}