You can combine two fields in one string-field and use it as String PK
On 11 май, 14:14, aptest1 actiprocess apte...@gmail.com wrote:
We are unable to use two fileds as the compisit primary keys in google
datastore, its throwing follwing exception if we make two fields as
primary key fileds.please help us to resolve this iusse
our company class has two primary keys as below, we are using
companyId,docId as primary keys
***
@PersistenceCapable(identityType=IdentityType.DATASTORE)
public class Company{
�...@primarykey
@Persistent(valueStrategy = IdGeneratorStrategy.SEQUENCE)
private Long companyId;
@PrimaryKey
String docId
}
if we start the server we are getting the following Exception :
***
*s
May 11, 2010 10:07:31 AM
org.datanucleus.metadata.AbstractClassMetaData determineObjectIdClass
SEVERE: Class com.atp.smartstore.DB.config.User has application-
identity and no objectid-class specified yet has 2 primary key fields.
Unable to use SingleFieldIdentity.
Class com.atp.smartstore.DB.config.User has application-identity and
no objectid-class specified yet has 2 primary key fields. Unable to
use SingleFieldIdentity.
May 11, 2010 10:07:31 AM org.datanucleus.enhancer.DataNucleusEnhancer
main
SEVERE: DataNucleus Enhancer completed with an error. Please review
the enhancer log for full details. Some classes may have been enhanced
but some caused errors
Class com.atp.smartstore.DB.config.User has application-identity and
no objectid-class specified yet has 2 primary key fields. Unable to
use SingleFieldIdentity.
org.datanucleus.metadata.InvalidMetaDataException: Class
com.atp.smartstore.DB.config.User has application-identity and no
objectid-class specified yet has 2 primary key fields. Unable to use
SingleFieldIdentity.
at
org.datanucleus.metadata.AbstractClassMetaData.determineObjectIdClass(Abstr
actClassMetaData.java:
1032)
at org.datanucleus.metadata.ClassMetaData.populate(ClassMetaData.java:
205)
at org.datanucleus.metadata.MetaDataManager
$1.run(MetaDataManager.java:2317)
at java.security.AccessController.doPrivileged(Native Method)
at
org.datanucleus.metadata.MetaDataManager.populateAbstractClassMetaData(Meta
DataManager.java:
2311)
at
org.datanucleus.metadata.MetaDataManager.populateFileMetaData(MetaDataManag
er.java:
2148)
at
org.datanucleus.metadata.MetaDataManager.initialiseFileMetaDataForUse(MetaD
ataManager.java:
864)
at
org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
433)
at
org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNu
cleusEnhancer.java:
743)
at
org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.ja
va:
545)
at
org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
1252)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
l.java:
25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
57)
at com.google.appengine.tools.enhancer.Enhance.init(Enhance.java:
60)
at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
--
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
athttp://groups.google.com/group/google-appengine-java?hl=en.
--
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.