Try this:
query.setFilter("pointsEarned < 0f");
This test case below worked for me:
import
com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import
com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
public class TestEntityTest {
private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Before
public void setUp() {
helper.setUp();
}
@After
public void tearDown() {
helper.tearDown();
}
@SuppressWarnings("unchecked")
@Test
public void testFloatValue() {
TestEntity t = new TestEntity();
t.setFloatValue(1.0f);
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(t);
Query query = pm.newQuery(TestEntity.class);
query.setFilter("floatValue > 0f");
List<TestEntity> results = (List<TestEntity>) query.execute();
Assert.assertEquals("Should have a single value", 1, results.size());
TestEntity negativeFloat = new TestEntity();
negativeFloat.setFloatValue(-1.0f);
pm.makePersistent(negativeFloat);
query = pm.newQuery(TestEntity.class);
results = (List<TestEntity>) query.execute();
Assert.assertEquals("Should have two values, one positive one negative",
2, results.size());
query = pm.newQuery(TestEntity.class);
query.setFilter("floatValue > 0f");
results = (List<TestEntity>) query.execute();
Assert.assertEquals("Should have one positive value", 1,
results.size());
query = pm.newQuery(TestEntity.class);
query.setFilter("floatValue < 0f");
results = (List<TestEntity>) query.execute();
Assert.assertEquals("Should have one negative value", 1,
results.size());
pm.close();
}
}
On Thu, Apr 8, 2010 at 4:22 AM, Bert <[email protected]> wrote:
> Hi,
>
> I'm trying to execute following query, which should return 3 values
> but returns 0.
> I think it's because pointsEarned is a float, but I don't know how to
> solve it.
>
> Query query = pm.newQuery(Answer.class);
> query.setFilter("pointsEarned < 0");
> List<Answer> answers = (List<Answer>) query.execute();
>
> There are 3 Answer entities in the datastore with pointsEarned = -1.0
>
> Is there anyway to query like this < on a float field?
>
> Regards
>
> --
> 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]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>
--
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine
--
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.