Created
February 5, 2012 16:25
-
-
Save mluukkai/1746363 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// yleiskäyttönen | |
package wad.varasto.database; | |
import java.util.List; | |
import javax.persistence.EntityManager; | |
import javax.persistence.PersistenceContext; | |
import javax.persistence.Query; | |
import org.springframework.stereotype.Repository; | |
import wad.varasto.domain.Huone; | |
public abstract class JPADao<T> implements DAO<T> { | |
@PersistenceContext | |
EntityManager entityManager; | |
private Class clazz; | |
public JPADao(Class clazz) { | |
this.clazz = clazz; | |
} | |
@Override | |
public void create(T instance) { | |
entityManager.merge(instance); | |
} | |
@Override | |
public T read(int id) { | |
return (T)entityManager.find(clazz, id); | |
} | |
@Override | |
public void delete(T instance) { | |
entityManager.remove(instance); | |
} | |
@Override | |
public T update(T instance) { | |
return entityManager.merge(instance); | |
} | |
@Override | |
public List<T> list() { | |
String TABLE = clazz.getName().substring(clazz.getName().lastIndexOf(".")+1); | |
Query q = entityManager.createQuery("SELECT t FROM "+TABLE+" t"); | |
return q.getResultList(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// yleiskäyttönen | |
package wad.varasto.database; | |
import java.util.List; | |
public interface DAO<T> { | |
public void create(T instance); | |
public T read(int id); | |
public void delete(T instance); | |
public T update(T instance); | |
public List<T> list(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// jokaiselle Entyty-luokalle tällänen | |
package wad.varasto.database; | |
import wad.varasto.domain.Henkilo; | |
public interface HenkiloDao extends DAO<Henkilo> { | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ja tällänen | |
package wad.varasto.database; | |
import org.springframework.stereotype.Repository; | |
import wad.varasto.domain.Henkilo; | |
@Repository | |
public class JPAHenkiloDao extends JPADao<Henkilo> implements HenkiloDao { | |
public JPAHenkiloDao() { | |
super(Henkilo.class); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment