I am trying to use MongoDB with Morphia as my back-end DB, I have implemented a utility class to simplify access to the database. I implemented basic add user function with However I am getting `lots of exceptions:
java.lang.IndexOutOfBoundsException exception when I put 
Query query = datastore.createQuery(User.class).filter("name = ", username);
for checking user before comitting.
When removed: I get these two exceptions:
java.lang.RuntimeException: java.lang.NumberFormatException:
How to fix this issue?
Here are the code I have for the project:
MorphiaUtil.java:
public class MorphiaUtil {
    protected final Log log = LogFactory.getLog(getClass());
    private static Mongo mongo;
    private static Datastore datastore;
    static {
        try {
            // Create the database connection
            mongo =  new Mongo("localhost");
            datastore = new Morphia().createDatastore(mongo, "mygwtapp");
        } catch (UnknownHostException e) {
            System.err.println("Caught Unknown host exception:"+e);
            e.printStackTrace();
        } catch (MongoException e) {
            System.err.println("Initial Datastore creation failed:"+e);
            e.printStackTrace();
        }
    }
    public static Datastore getDatastore() {
        return datastore;
    }
}
UserServiceImpl.java
public class UserServiceImpl extends RemoteServiceServlet 
    implements UserService {
    @Override
    public void addUser(String username, String password)
            throws IllegalArgumentException {
        try {
            Datastore datastore = MorphiaUtil.getDatastore();
            Query query = datastore.createQuery(User.class).filter("name = ", username); 
            User user = (User) query.asList().get(0);
            if (user == null) {
                user = new User(username, password);
                datastore.save(user);
            }
        } catch (Exception e) { 
            System.err.print("Caught exception:"+e);
        }
    }
}
                I created a server version of all my beans, and before calling saving methods, i convert from Simple Beans (used in client side) to MorphiaBeans (used only for morphia operations).
That's not the best method to fix this issue, but works fine for me!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With