qry.setParameter("id", fa.getId());
qry.setParameter("strVal", "XMLFieldAccess2");
XMLFieldAccess2 fa2 = (XMLFieldAccess2)qry.getSingleResult();
assertEquals(fa.getId(), fa2.getId());
XMLDefFieldMixedPropAccess2 dfmpa = new XMLDefFieldMixedPropAccess2();
// Call non-PC setter
dfmpa.setStrField("NonPCSetter");
// Call setter with property access
dfmpa.setStringField("XMLDFMPA2");
em.getTransaction().begin();
em.persist(dfmpa);
em.getTransaction().commit();
em.clear();
// This value of a persistent property was set using the setter
// above, but this query will use the property name to verify that
// property access is in use.
qry = em.createNamedQuery("XMLDFMPA2.query");
qry.setParameter("id", dfmpa.getId());
qry.setParameter("strVal", "XMLDFMPA2");
XMLDefFieldMixedPropAccess2 dfmpa2 =
(XMLDefFieldMixedPropAccess2)qry.getSingleResult();
assertEquals(dfmpa, dfmpa2);
assertEquals(dfmpa2.getStringField(), "XMLDFMPA2");
try {
qry = em.createNamedQuery("XMLDFMPA2.badQuery");
qry.setParameter("id", dfmpa.getId());
qry.setParameter("strVal", "XMLDFMPA2");