/**
* junit-rules: JUnit Rules Library
*
* Copyright (c) 2009-2011 by Alistair A. Israel.
* This software is made available under the terms of the MIT License.
*
* Created Oct 22, 2009
*/
package com.example.dao.jpa;
import java.util.List;
import javax.persistence.EntityManager;
import com.example.dao.WidgetDao;
import com.example.model.Widget;
/**
* @author Alistair A. Israel
*/
public class JpaWidgetDao implements WidgetDao {
private final EntityManager entityManager;
/**
* @param entityManager
* the {@link EntityManager}
*/
public JpaWidgetDao(final EntityManager entityManager) {
this.entityManager = entityManager;
}
/**
* {@inheritDoc}
*
* @see com.example.dao.WidgetDao#findById(int)
*/
@Override
public final Widget findById(final int id) {
return entityManager.find(Widget.class, id);
}
/**
* {@inheritDoc}
*
* @see com.example.dao.WidgetDao#findByName(java.lang.String)
*/
@Override
@SuppressWarnings("unchecked")
public final Widget findByName(final String name) {
final List<Widget> list = entityManager.createNamedQuery(Widget.FIND_BY_NAME).setParameter("name", name)
.getResultList();
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
/**
* {@inheritDoc}
*
* @see com.example.dao.WidgetDao#listAll()
*/
@Override
@SuppressWarnings("unchecked")
public final List<Widget> listAll() {
return entityManager.createNamedQuery(Widget.LIST_ALL).getResultList();
}
}