Dynamic named query

Run
How to run the sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing we need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jpa/dynamic-named-query/
Now we are ready to start testing. You can run all the tests in this sample by executing:
mvn test
Or you can run individual tests by executing one of the following:
mvn test -Dtest=DynamicNamedQueryTest

DynamicNamedQueryTest

This tests that queries which have been dynamically (programmatically) added as named queries can be executed correctly.

Missing a description for the deployment. Add some javadoc to the @Deployment method. Show me how!
@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class).addPackages(true, "org.javaee7.jpa.dynamicnamedquery")
            .addAsResource("META-INF/persistence.xml");
}
Missing a description for the test scenario. Add some javadoc to the @Test method. Show me how!
@Test
public void testDynamicNamedCriteriaQueries() throws IOException, SAXException {

    // Nothing inserted yet, data base should not contain any entities
    // (this tests that a simple query without parameters works as named query created by Criteria)
    assertTrue(testService.getAll().size() == 0);

    // Insert one entity
    TestEntity testEntity = new TestEntity();
    testEntity.setValue("myValue");
    testService.save(testEntity);

    // The total amount of entities should be 1
    assertTrue(testService.getAll().size() == 1);

    // The entity with "myValue" should be found
    // (this tests that a query with a parameter works as named query created by Criteria)
    assertTrue(testService.getByValue("myValue").size() == 1);
}

Share the Knowledge

Find this sample useful? Share on

There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.

Help Improve

Find a bug in the sample? Something missing? You can fix it by editing the source, making the correction and sending a pull request. Or report the problem to the issue tracker

Recent Changelog

  • Dec 22, 2013: Standalone servlet and index.jsp no longer needed for new tests. forgot by arjan tijms
  • Dec 22, 2013: Added jpa test for the new 2.1 feature of dynamically adding named by arjan tijms
How to help improve this sample
The source code for this sample can be found in the javaee7-samples GitHub repository. The first thing you need to do is to get the source by downloading the repository and then go into the samples folder:
git clone git://github.com/javaee-samples/javaee7-samples.git
cd javaee7-samples/jpa/dynamic-named-query/

Do the changes as you see fit and send a pull request!

Good Luck!