The default behavior for a JPA EntityManager is to flush and commit in the end of any transaction it participates - being it a normal PersistenceContext (your case) or an extended one.
Also, the default behavior for an EJB is to be transactional on all public methods (with propagation REQUIRED), meaning it will create a transaction if one does not exists.
Your property changes are committed every time because there's a transaction every time on your BannerService (it's an EJB).
I would suggest annotating the buscarBanners() method on BannerService with @TransactionAttribute(TransactionAttributeType.SUPPORTS)