Skip to content

Instantly share code, notes, and snippets.

@yostane
Created January 27, 2021 22:39
Show Gist options
  • Select an option

  • Save yostane/5247810024331cc1f9f20c206fcf6da2 to your computer and use it in GitHub Desktop.

Select an option

Save yostane/5247810024331cc1f9f20c206fcf6da2 to your computer and use it in GitHub Desktop.
JPA
import javax.ejb.*;
import javax.inject.Inject;
import java.util.List;
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class CrewBean {
@Inject
private CrewMemberDao crewMemberDao;
public List<CrewMember> getCrewMembers() {
return crewMemberDao.getCrewMembers();
}
public boolean addMember(CrewMember crewMember) {
return crewMemberDao.addCrewMember(crewMember);
}
public void deleteMember(String name){
}
}
import javax.persistence.*;
import java.io.Serializable;
@Entity
public class CrewMember implements Serializable {
@Column(unique = true)
private String name;
@Column
private String job;
@Id
@GeneratedValue
private Long id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
}
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.UserTransaction;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CrewMemberDao {
@PersistenceContext
private EntityManager entityManager;
@Resource
UserTransaction userTransaction;
public List<CrewMember> getCrewMembers(){
return entityManager.createQuery("select cm from CrewMember cm", CrewMember.class).getResultList();
}
public boolean addCrewMember(CrewMember crewMember){
try{
userTransaction.begin();
entityManager.persist(crewMember);
userTransaction.commit();
return true;
}catch (Exception e){
Logger.getGlobal().log(Level.SEVERE, "JPA error" + e.getMessage());
return false;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="prod">
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="create" />
</properties>
</persistence-unit>
</persistence>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment