1)
@PostConstruct
public void initialize( ){ }
@PreDestroyAccess modifier can be public
public void cleanup( ){ }
@PrePassivate
public void cleanup( ){ }
@PostActivate
public void openConnection( ){ }
protected
default
private
Not static
Not Final
Not throw checked Exceptions
@Remove
public void cancel( ){ }
@PostConstruct, @PreDestroy can be used with stateful, stateless session beans
@PrePassivate, @PostActivate, @Remove used with stateful session beans
2)
Transaction attributes
Reference : EJB 3 in Action
| Transaction Attribute | Caller Transaction Exists? | Effect |
|---|---|---|
| REQUIRED | No | Container creates a new transaction. |
| Yes | Method joins the caller’s transaction. | |
| REQUIRES_NEW | No | Container creates a new transaction. |
| Yes | Container creates a new transaction and the caller’s transaction is suspended | |
| SUPPORTS | No | No transaction is used. |
| Yes | Method joins the caller’s transaction. | |
| MANDATORY | No | javax.ejb.EJBTransactionRequired-Exception is thrown. |
| Yes | Method joins the caller’s transaction. | |
| NOT_SUPPORTED | No | No transaction is used. |
| Yes | The caller’s transaction is suspended and the method is called without a transaction | |
| NEVER | No | No transaction is used. |
| Yes | javax.ejb.EJBException is thrown |
3)
@Entity
public class Project{
@ManyToMany(mappedBy="projects")
Set<Employee> emps;
}
@Entity
public class Employee{
@ManyToMany(targetEntity=Project.class)
Collection projects;
}
If we not use Generics we have to use targetEntity
4 )
@MessageDriven
public class MyMessageBean implements MessageListener{
public MyMessageBean(){}
public void onMesage(Message message){
}
}
5) EJB Roles
- Enterprise Bean Provider
- Application Assembler
- Deployer
- EJB Server Provider
- EJB Container Provider
- Persistence Provider
- System Administrator
@PersistenceUnit
EntityManagerFactory emf;
@PersistenceContext
EntityManager em;
7)Defining a Runtime Exception
@ApplicationException public class MyException extends java.lang.RuntimeException
8) ejb-jar is a contract between ,
Bean Provider and Application Assembler
Application Assembler and Deployer
No comments:
Post a Comment