public class Qarray {
public String[][] Cellval;
public Qarray()
{
}
}
-----------------------------------
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import javax.jdo.annotations.Extension;
import java.util.ArrayList;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Question {
@PrimaryKey
@Persistent
private String Pid;
@Persistent
public ArrayList<Qarray> qarray;
public void setQuestion(String progid,String[][] cellval)
{
this.Pid = progid;
Qarray qa = new Qarray();
qa.Cellval = cellval;
this.qarray = new ArrayList<Qarray>(1);
this.qarray.add(qa);
}
public Question()
{
}
public void setPid(String pid)
{
this.Pid = pid;
}
public String getPid()
{
return(this.Pid);
}
public String[][] getCellval()
{
return this.qarray.get(0).Cellval;
}
}
------------------------------------------------------
I write it using below mentioned lines from a different class:
public void writeQuestion(Question Q1)
{
PersistenceManager pm =
PMF.get().getPersistenceManager();
try {
pm.makePersistent(Q1);
} finally {
pm.close();
}
}
-------------------------------------------------------
I am still getting exception like,
java.lang.IllegalArgumentException: Qarray is not a supported property
type.
at
com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:
114)
at
com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:
99)
at com.google.appengine.api.datastore.Entity.setProperty(Entity.java:
257)
at
org.datanucleus.store.appengine.DatastoreFieldManager.storeObjectField(DatastoreFieldManager.java:
757)
at
org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:
1011)
at com.cword.proj.Question.jdoProvideField(Question.java)
at com.cword.proj.Question.jdoProvideFields(Question.java)
at
org.datanucleus.state.JDOStateManagerImpl.provideFields(JDOStateManagerImpl.java:
2597)
at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:
180)
at
org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:
3067)
at
org.datanucleus.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.java:
3043)
at
org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:
1258)
at
org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:
1135)
at
org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:
668)
at
org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:
693)
at com.cword.proj.AccessQuestions.writeQuestion(AccessQuestions.java:
80)
at org.apache.jsp.Temp_jsp._jspService(Temp_jsp.java:112)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
324)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at com.google.appengine.tools.development.PrivilegedJspServlet.access
$101(PrivilegedJspServlet.java:23)
at com.google.appengine.tools.development.PrivilegedJspServlet
$2.run(PrivilegedJspServlet.java:59)
at java.security.AccessController.doPrivileged(Native Method)
at
com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:
57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1093)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
54)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:306)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
396)
at org.mortbay.thread.BoundedThreadPool
$PoolThread.run(BoundedThreadPool.java:442)
On Mar 12, 4:18 am, datanucleus <[email protected]> wrote:
> You mean you now have ArrayList<ArrayList>, as opposed to the array
> mentioned in your first post ?
>
> ArrayList<ArrayList> is not a supported property type. ArrayList is.
> You could obviously add a dummy class (e.g MyTempClass) as persistable
> with the other ArrayList in it as a field so the original field
> becomes ArrayList<MyTempClass>
--
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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.