Skip to content

Instantly share code, notes, and snippets.

@koher
Created March 26, 2010 11:50
Show Gist options
  • Save koher/344801 to your computer and use it in GitHub Desktop.
Save koher/344801 to your computer and use it in GitHub Desktop.
GAE/JのLow-Level APIで複数値プロパティを扱う例
package org.koherent.appengine.test;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.EntityNotFoundException;
import com.google.appengine.api.datastore.KeyFactory;
@SuppressWarnings("serial")
public class MultiValuesTestServlet extends HttpServlet {
@SuppressWarnings("unchecked")
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
DatastoreService service = DatastoreServiceFactory
.getDatastoreService();
response.setContentType("text/plain");
// put
{
Entity entity = new Entity("kind", "name");
Set<Integer> values = new TreeSet<Integer>();
values.add(1);
values.add(2);
values.add(3);
entity.setProperty("propertyName", values);
service.put(entity);
}
// get
try {
Entity entity = service.get(KeyFactory.createKey("kind", "name"));
// SetはArrayListに、IntegerはLongに変換されていることに注意
List<Long> values = (ArrayList<Long>) entity
.getProperty("propertyName");
PrintWriter out = response.getWriter();
for (Long value : values) {
out.println(value);
}
} catch (EntityNotFoundException e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment