Regis_A_Rocha 12 de ago. de 2009
mais alguns exemplos com EJB 3
// EJB3 CMT: @TransactionAttribute(TransactionAttributeType.REQUIRED)
public void execute () {
// JTA: UserTransaction utx = jndiContext.lookup("UserTransaction");
// JTA: utx.begin();
// Plain JDBC: HibernateUtil.getCurrentSession().beginTransaction();
DAOFactory factory = DAOFactory . instance ( DAOFactory . HIBERNATE );
ItemDAO itemDAO = factory . getItemDAO ();
UserDAO userDAO = factory . getUserDAO ();
Bid currentMaxBid = itemDAO . getMaxBid ( itemId );
Bid currentMinBid = itemDAO . getMinBid ( itemId );
Item item = itemDAO . findById ( itemId , true );
newBid = item . placeBid ( userDAO . findById ( userId , false ),
bidAmount ,
currentMaxBid ,
currentMinBid );
// JTA: utx.commit(); // Don't forget exception handling
// Plain JDBC: HibernateUtil.getCurrentSession().getTransaction().commit(); // Don't forget exception handling
}
Regis_A_Rocha 12 de ago. de 2009
// EJB3 CMT: @TransactionAttribute(TransactionAttributeType.REQUIRED)
public void execute () {
// JTA: UserTransaction utx = jndiContext.lookup("UserTransaction");
// JTA: utx.begin();
// Plain JDBC: HibernateUtil.getCurrentSession().beginTransaction();
ItemDAOHibernate itemDAO = new ItemDAOHibernate ();
itemDAO . setSession ( HibernateUtil . getSessionFactory (). getCurrentSession ());
UserDAOHibernate userDAO = new UserDAOHibernate ();
userDAO . setSession ( HibernateUtil . getSessionFactory (). getCurrentSession ());
Bid currentMaxBid = itemDAO . getMaxBid ( itemId );
Bid currentMinBid = itemDAO . getMinBid ( itemId );
Item item = itemDAO . findById ( itemId , true );
newBid = item . placeBid ( userDAO . findById ( userId , false ),
bidAmount ,
currentMaxBid ,
currentMinBid );
// JTA: utx.commit(); // Don't forget exception handling
// Plain JDBC: HibernateUtil.getCurrentSession().getTransaction().commit(); // Don't forget exception handling
}
Regis_A_Rocha 13 de ago. de 2009
public abstract class GenericHibernateDAO < T , ID extends Serializable >
implements GenericDAO < T , ID > {
private Class < T > persistentClass ;
private Session session ;
public GenericHibernateDAO () {
this . persistentClass = ( Class < T > ) (( ParameterizedType ) getClass ()
. getGenericSuperclass ()) . getActualTypeArguments ()[ 0 ];
}
public void setSession ( Session session ) {
this . session = session ;
}
protected void getSession () {
if ( session == null )
session = HibernateUtil . getSessionFactory () . getCurrentSession ();
return session ;
}
Regis_A_Rocha 13 de ago. de 2009
// EJB3 CMT: @TransactionAttribute(TransactionAttributeType.REQUIRED)
public void execute () {
// JTA: UserTransaction utx = jndiContext.lookup("UserTransaction");
// JTA: utx.begin();
// Plain JDBC: HibernateUtil.getCurrentSession().beginTransaction();
ItemDAO itemDAO = new ItemDAOHibernate ();
UserDAO userDAO = new UserDAOHibernate ();
Bid currentMaxBid = itemDAO . getMaxBid ( itemId );
Bid currentMinBid = itemDAO . getMinBid ( itemId );
Item item = itemDAO . findById ( itemId , true );
newBid = item . placeBid ( userDAO . findById ( userId , false ),
bidAmount ,
currentMaxBid ,
currentMinBid );
// JTA: utx.commit(); // Don't forget exception handling
// Plain JDBC: HibernateUtil.getCurrentSession().getTransaction().commit(); // Don't forget exception handling
}
Regis_A_Rocha 13 de ago. de 2009
@ Stateless
public abstract class GenericHibernateDAO < T , ID extends Serializable >
implements GenericDAO < T , ID > {
private Class < T > persistentClass ;
@ PersistenceContext
private EntityManager em ;
public GenericHibernateDAO () {
setSession ( ( Session ) em . getDelegate () );
}
Regis_A_Rocha 13 de ago. de 2009
@ Stateless
public class ManageAuctionController implements ManageAuction {
@ EJB ItemDAO itemDAO ;
@ EJB UserDAO userDAO ;
@ TransactionAttribute ( TransactionAttributeType . REQUIRED ) // This is even the default
public void execute () {
Bid currentMaxBid = itemDAO . getMaxBid ( itemId );
Bid currentMinBid = itemDAO . getMinBid ( itemId );
Item item = itemDAO . findById ( itemId , true );
newBid = item . placeBid ( userDAO . findById ( userId , false ),
bidAmount ,
currentMaxBid ,
currentMinBid );
}
}
Regis_A_Rocha 13 de ago. de 2009
public interface ItemDAO extends GenericDAO < Item , Long > {
public static final String QUERY_MAXBID = "ItemDAO.QUERY_MAXBID" ;
public static final String QUERY_MINBID = "ItemDAO.QUERY_MINBID" ;
Bid getMaxBid ( Long itemId );
Bid getMinBid ( Long itemId );
}
Cherubini 13 de ago. de 2009
Fala ai Regis!!
blz ?
então cara, vc nao entendeu oq falei!!
Eu quero um modelo + robusto mais so em EJB3!!
pq os outros jeito q estou acostumado a faze,eu nao estou conseguindo colocar como EJBs!!
Mais vlws!!!