MonetaryAmount initialPrice =
new MonetaryAmount(new BigDecimal(123), Currency.getInstance("USD"));
MonetaryAmount reservePrice =
new MonetaryAmount(new BigDecimal(333), Currency.getInstance("USD"));
Item newItem =
new Item( "Testitem", "Test Description", user,
initialPrice, reservePrice,
startDate.getTime(), endDate.getTime() );
// Don't forget to take the return value, this is basically a merge()
newItem = itemDAO.makePersistent(newItem);
// End the unit of work
getUserTransaction().commit();
// Direct SQL query for database state in auto-commit mode
EntityManager em = getEntityManagerFactory().createEntityManager();
Object[] result = (Object[])
em.createNativeQuery(
"select INITIAL_PRICE as IP," +
" SELLER_ID as SID from ITEM where ITEM_ID = :itemId")
.setParameter("itemId", newItem.getId())
.getSingleResult();
em.close();
// Assert correctness of state
assert result[0].getClass() == BigDecimal.class;
assert result[0].equals(newItem.getInitialPrice().getValue());
// The SQL resultset mapping returns a BigInteger
assert result[1].equals(new BigInteger("1"));
}