Я использую Google App Engine и используя интерфейс хранилища данных Google для базы данных. Мой вопрос в том, что у меня есть следующий код: у меня есть сетевой объект, который я хочу либо обновить, если он существует на db, либо создать, если это первый раз. , Для этого я должен поймать исключение и повторить один и тот же код дважды - кажется уродливым и избыточным и заставляет меня думать, что я делаю что-то неправильно. Вторая вещь, которая поражает меня как нечетную, заключается в том, что нет никакого метода, о котором я могу думать, что копирует объект в объект или наоборот. Должен ли я сам реализовать это? Это очень неудобно использовать setProperty или getProperty для каждого свойства и хорошо ... Мне просто интересно, почему нет метода objectToEntity или чего-то подобного.Проблемы с хранилищем данных Google App Engine
Это, как в настоящее время выглядит мой код ...
try {
Entity network=datastore.get(KeyFactory.stringToKey(networks.get(i)._ipDigits));
//If I get here no exception was thrown - entity already exists on db.
Network contextNet= //fetch the network object from servlet context ...
network.setProperty("ip", contextNet._ip); //update the fields using setProperty - no better way??
network.setProperty("offlineUsers",contextNet._offlineUsers);
datastore.put(network);
}
//Entity doesn't exist , create a new entity and save it (while repeating the same code)...
catch (EntityNotFoundException e) {
Entity network=new Entity("network",Long.parseLong(networks.get(i)._ipDigits));
Network contextNet= // ...fetch the network object from servlet context
network.setProperty("ip", contextNet._ip);
network.setProperty("offlineUsers",contextNet._offlineUsers);
datastore.put(network);
}
спасибо, петер! –