@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class).addPackages(true, "org.javaee7.jpa.dynamicnamedquery")
            .addAsResource("META-INF/persistence.xml");
}
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 testOr you can run individual tests by executing one of the following:mvn test -Dtest=DynamicNamedQueryTestThis tests that queries which have been dynamically (programmatically) added as named queries can be executed correctly.
@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class).addPackages(true, "org.javaee7.jpa.dynamicnamedquery")
            .addAsResource("META-INF/persistence.xml");
}
@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);
}
There's a lot more about JavaEE to cover. If you're ready to learn more, check out the other available samples.
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!