Hi!Cyrille I add a primary key in my child class:

@PersistenceCapable(identityType =
IdentityType.APPLICATION,detachable="true")
public class RegFechaUsuario extends Fecha  {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key id;
        @Persistent
        private int puntos;
        @Persistent
        private Long idUsuarioFecha;
        @Persistent
        private Long idFechaOriginal;


And the exception is:

    Error in meta-data for model.RegFechaUsuario: More than one
primary key field.

Caused by:

Error in meta-data for model.RegFechaUsuario: More than one primary
key field.
org.datanucleus.store.appengine.MetaDataValidator
$DatastoreMetaDataException: Error in meta-data for
model.RegFechaUsuario: More than one primary key field.
        at
org.datanucleus.store.appengine.MetaDataValidator.validatePrimaryKey(MetaDataValidator.java:
416)
        at
org.datanucleus.store.appengine.MetaDataValidator.validate(MetaDataValidator.java:
120)
        at
org.datanucleus.store.appengine.DatastoreManager.validateMetaDataForClass(DatastoreManager.java:
766)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess(DatastorePersistenceHandler.java:
328)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:
251)
        at
org.datanucleus.store.appengine.BatchPutManager.processBatchState(BatchPutManager.java:
35)
        at
org.datanucleus.store.appengine.BatchManager.finish(BatchManager.java:
54)
        at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager
$BatchManagerWrapper.call(DatastoreJDOPersistenceManager.java:127)
        at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager
$BatchManagerWrapper.access$200(DatastoreJDO

On 23 sep, 05:25, Cyrille Vincey <crll...@gmail.com> wrote:
> There is no primary key in your child class.
> Add one.
>
> On 23/09/10 04:40, "lisandrodc" <lisandr...@gmail.com> wrote:
>
>
>
> > Hi ! I have a problem when persist a chid class.
> > The parent class:
>
> > @PersistenceCapable
>
> > @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
> > public  abstract class Fecha   {
>
> > @PrimaryKey
> > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> > private Key id;
> > @Persistent
> > private String nombre;
> > @Persistent
> > private Date fechaIni;
> > @Persistent
> > private Date fechaFin;
>
> > @Persistent(defaultFetchGroup = "true")
> > List<Partido> partidos;
>
> > private Long id2;
>
> > private Long kind;
>
> > The child class:
> > @PersistenceCapable(identityType =
> > IdentityType.APPLICATION,detachable="true")
> > public class RegFechaUsuario extends Fecha  {
>
> > @Persistent
> > private int puntos;
> > @Persistent
> > private Long idUsuarioFecha;
> > @Persistent
> > private Long idFechaOriginal;
>
> > The method at persist:
>
> > public void crearRegFechaUsuario(RegFechaUsuario regFechaUsuario) {
> >         //regFechaUsuario is an object initialized
> > Transaction tx = pm.currentTransaction();
> > try {
> > tx.begin();
>
> > pm.makePersistentAll(regFechaUsuario);
> >                        //here is the exception
> > tx.commit();
> > } finally {
> > // pm.close();
> > if (tx.isActive()) {
> > tx.rollback();
> > }
> > }
>
> > }
>
> > And the exception is (internal error of the library of google apps or
> > datanucleus), the cast:
>
> > Problem accessing /Prode/JugarFecha.action. Reason:
>
> >     java.lang.Long cannot be cast to java.lang.String
>
> > Caused by:
>
> > java.lang.ClassCastException: java.lang.Long cannot be cast to
> > java.lang.String
> > at
> > org.datanucleus.store.appengine.DatastoreRelationFieldManager.checkForParentSw
> > itch(DatastoreRelationFieldManager.java:
> > 202)
> > at org.datanucleus.store.appengine.DatastoreRelationFieldManager
> > $1.setObjectViaMapping(DatastoreRelationFieldManager.java:133)
> > at org.datanucleus.store.appengine.DatastoreRelationFieldManager
> > $1.apply(DatastoreRelationFieldManager.java:112)
> > at
> > org.datanucleus.store.appengine.DatastoreRelationFieldManager.storeRelations(D
> > atastoreRelationFieldManager.java:
> > 81)
> > at
> > org.datanucleus.store.appengine.DatastoreFieldManager.storeRelations(Datastore
> > FieldManager.java:
> > 955)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.storeRelations(Dat
> > astorePersistenceHandler.java:
> > 546)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPostProcess(
> > DatastorePersistenceHandler.java:
> > 304)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(Data
> > storePersistenceHandler.java:
> > 256)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(Datas
> > torePersistenceHandler.java:
> > 240)
> > at
> > org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManag
> > erImpl.java:
> > 3185)
> > at
> > org.datanucleus.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.j
> > ava:
> > 3161)
> > at
>
> org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java>
> :> 1298)
> > at
> > org.datanucleus.sco.SCOUtils.validateObjectForWriting(SCOUtils.java:
> > 1476)
> > at
> > org.datanucleus.store.mapped.scostore.ElementContainerStore.validateElementFor
> > Writing(ElementContainerStore.java:
> > 380)
> > at
> > org.datanucleus.store.mapped.scostore.FKListStore.validateElementForWriting(FK
> > ListStore.java:
> > 609)
> > at
>
> org.datanucleus.store.mapped.scostore.FKListStore.internalAdd(FKListStore.java>
> :
>
> > 344)
> > at
> > org.datanucleus.store.appengine.DatastoreFKListStore.internalAdd(DatastoreFKLi
> > stStore.java:
> > 146)
> > at
> > org.datanucleus.store.mapped.scostore.AbstractListStore.addAll(AbstractListSto
> > re.java:
> > 128)
> > at
> > org.datanucleus.store.mapped.mapping.CollectionMapping.postInsert(CollectionMa
> > pping.java:
> > 157)
> > at
> > org.datanucleus.store.appengine.DatastoreRelationFieldManager.runPostInsertMap
> > pingCallbacks(DatastoreRelationFieldManager.java:
> > 217)
> > at
> > org.datanucleus.store.appengine.DatastoreRelationFieldManager.access
> > $200(DatastoreRelationFieldManager.java:48)
> > at org.datanucleus.store.appengine.DatastoreRelationFieldManager
> > $1.apply(DatastoreRelationFieldManager.java:116)
> > at
> > org.datanucleus.store.appengine.DatastoreRelationFieldManager.storeRelations(D
> > atastoreRelationFieldManager.java:
> > 81)
> > at
> > org.datanucleus.store.appengine.DatastoreFieldManager.storeRelations(Datastore
> > FieldManager.java:
> > 955)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.storeRelations(Dat
> > astorePersistenceHandler.java:
> > 546)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPostProcess(
> > DatastorePersistenceHandler.java:
> > 304)
> > at
> > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(Data
> > storePersistenceHandler.java:
> > 256)
> > at
> > org.datanucleus.store.appengine.BatchPutManager.processBatchState(BatchPutMana
> > ger.java:
> > 35)
> > at
> > org.datanucleus.store.appengine.BatchManager.finish(BatchManager.java:
> > 54)
> > at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager
> > $BatchManagerWrapper.call(DatastoreJDOPersistenceManager.java:127)
> > at org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager
> > $BatchManagerWrapper.access$200(DatastoreJDOPersistenceManager.java:
> > 121)
> > at
> > org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.makePersist
> > entAll(DatastoreJDOPersistenceManager.java:
> > 98)
> > at
> > org.datanucleus.jdo.JDOPersistenceManager.makePersistentAll(JDOPersistenceMana
> > ger.java:
> > 703)
> > at
> > controllers.ControladorFecha.crearRegFechaUsuario(ControladorFecha.java:
> > 157)
> > at
> > struts.action.RegistrarJugada.crearFechaParaRegistro(RegistrarJugada.java:
> > 86)
> > at struts.action.RegistrarJugada.registrarJugada(RegistrarJugada.java:
> > 71)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > 39)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.j
> > ava:
> > 25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> > com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.ja
> > va:
> > 100)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvo
> > cation.java:
> > 441)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultAction
> > Invocation.java:
> > 280)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 243)
> > at
> > com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(Def
> > aultWorkflowInterceptor.java:
> > 165)
> > at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFi
> > lterInterceptor.java:
> > 87)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Validation
> > Interceptor.java:
> > 252)
> > at
> > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIn
> > tercept(AnnotationValidationInterceptor.java:
> > 68)
> > at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFi
> > lterInterceptor.java:
> > 87)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(Conve
> > rsionErrorInterceptor.java:
> > 122)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Paramete
> > rsInterceptor.java:
> > 195)
> > at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFi
> > lterInterceptor.java:
> > 87)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Paramete
> > rsInterceptor.java:
> > 195)
> > at
> > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFi
> > lterInterceptor.java:
> > 87)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(Stat
> > icParametersInterceptor.java:
> > 179)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInt
> > erceptor.java:
> > 75)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxIntercept
> > or.java:
> > 94)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInter
> > ceptor.java:
> > 235)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDriv
> > enInterceptor.java:
> > 89)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(Sco
> > pedModelDrivenInterceptor.java:
> > 130)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(Debugg
> > ingInterceptor.java:
> > 267)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
> > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInte
> > rceptor.java:
> > 126)
> > at
> > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation
> > .java:
> > 237)
> > at
>
> ...
>
> leer más »

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to