@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
}
public interface CustomerDao {
void save(Customer customer);
Customer findById(Long id);
List<Customer> findAll();
}
@Repository
public class CustomerDaoImpl implements CustomerDao {
@PersistenceContext
private EntityManager entityManager;
@Override
public void save(Customer customer) {
entityManager.persist(customer);
}
@Override
public Customer findById(Long id) {
return entityManager.find(Customer.class, id);
}
@Override
public List<Customer> findAll() {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> rootEntry = cq.from(Customer.class);
CriteriaQuery<Customer> all = cq.select(rootEntry);
TypedQuery<Customer> allQuery = entityManager.createQuery(all);
return allQuery.getResultList();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="examplePersistenceUnit" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/example_db"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="password"/>
</properties>
</persistence-unit>
</persistence>