@Discriminator needed a value="" present

On Tue, Jul 4, 2017 at 10:17 PM, Stephen Cameron <steve.cameron...@gmail.com
> wrote:

> Hi all,
>
> I am getting a metamodel validation error on the following class and
> cannot see a problem. I removed the same error message for multiple classes
> by adding a schema  param to @PersistenceCapable(), but for this class the
> message refuses to go.
>
> I'll debug it tomorrow evening, but maybe someone else has seen this.
>
> ################################################ ISIS METAMODEL
> VALIDATION ERRORS ##############################
> ##################################
>
> au.com.scds.obatchi.dom.base.Test: the object type must be specified
> explicitly ('isis.reflector.validator.explicitObjectType' config
> property).  Defaulting the object type from the package/class/package name
> can lead to data migration issues for apps deployed to production (if the
> class is subsequently refactored).  Use @Discriminator,
> @DomainObject(objectType=...) or @PersistenceCapable(schema=...) to
> specify explicitly.
>
> Please inspect the above messages and correct your domain model.
>
> ################################################ ISIS METAMODEL
> VALIDATION ERRORS ##############################
> ##################################
>
>
> package au.com.scds.obatchi.dom.base;
>
> import javax.jdo.annotations.Column;
> import javax.jdo.annotations.Discriminator;
> import javax.jdo.annotations.IdentityType;
> import javax.jdo.annotations.Inheritance;
> import javax.jdo.annotations.InheritanceStrategy;
> import javax.jdo.annotations.PersistenceCapable;
> import org.apache.isis.applib.annotation.DomainObject;
>
>
> @DomainObject(objectType="Test")
> @PersistenceCapable(identityType = IdentityType.DATASTORE,
> schema="obatchi")
> @Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
> @Discriminator(column="discriminator")
> public class Test {
>
>     //@XmlElement(name = "test-name", required = true)
>     @Column(allowsNull = "false")
>     protected String testName;
>
>     /**
>      * Gets the value of the testName property.
>      *
>      * @return possible object is {@link String }
>      *
>      */
>     public String getTestName() {
>         return testName;
>     }
>
>     /**
>      * Sets the value of the testName property.
>      *
>      * @param value
>      *            allowed object is {@link String }
>      *
>      */
>     public void setTestName(String value) {
>         this.testName = value;
>     }
>
> }
>

Reply via email to