package WEBPIECESxPACKAGE.base;
import java.util.List;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import org.webpieces.router.api.Startable;
import org.webpieces.util.logging.Logger;
import org.webpieces.util.logging.LoggerFactory;
import WEBPIECESxPACKAGE.base.libs.EducationEnum;
import WEBPIECESxPACKAGE.base.libs.RoleEnum;
import WEBPIECESxPACKAGE.base.libs.UserDbo;
import WEBPIECESxPACKAGE.base.libs.UserRole;
public class PopulateDatabase implements Startable {
private static final Logger log = LoggerFactory.getLogger(PopulateDatabase.class);
private EntityManagerFactory factory;
@Inject
public PopulateDatabase(EntityManagerFactory factory) {
this.factory = factory;
}
@Override
public void start() {
createSomeData();
}
private void createSomeData() {
EntityManager mgr = factory.createEntityManager();
List<UserDbo> users = UserDbo.findAll(mgr);
if(users.size() > 0)
return; //This database has users, exit immediately to not screw up existing data
EntityTransaction tx = mgr.getTransaction();
tx.begin();
UserDbo user1 = new UserDbo();
user1.setEmail("dean@somewhere.com");
user1.setName("SomeName");
user1.setFirstName("Dean");
user1.setLastName("Hill");
UserDbo user2 = new UserDbo();
user2.setEmail("bob@somewhere.com");
user2.setName("Bob'sName");
user2.setFirstName("Bob");
user2.setLastName("LastBob");
user2.setLevelOfEducation(EducationEnum.MIDDLE_SCHOOL);
UserRole role1 = new UserRole(user2, RoleEnum.DELINQUINT);
UserRole role2 = new UserRole(user2, RoleEnum.BADASS);
mgr.persist(user1);
mgr.persist(user2);
mgr.persist(role1);
mgr.persist(role2);
mgr.flush();
tx.commit();
}
}