package org.jboss.seam.ioc.spring;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceException;
import org.springframework.orm.jpa.AbstractEntityManagerFactoryBean;
/**
* A FactoryBean the constructs EntityManagerFactories that proxy to a Seam
* ManagedPersistenceContext.
*
* @author Mike Youngstrom
*/
public class SeamManagedEntityManagerFactoryBean extends AbstractEntityManagerFactoryBean
{
private String persistenceContextName;
@Override
protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException
{
return new SeamManagedEntityManagerFactory(persistenceContextName);
}
@Override
public String getPersistenceUnitName()
{
String persistenceUnitName = super.getPersistenceUnitName();
if (persistenceUnitName == null || "".equals(persistenceUnitName))
{
return persistenceContextName;
}
return persistenceUnitName;
}
public void setPersistenceContextName(String persistenceContextName)
{
this.persistenceContextName = persistenceContextName;
}
}