Using generic methods for basic crud operations
What about having generic abstract dao class which will contain these methods? You will most likely have to create some concrete dao classes anyway to have specific methods. 
We are using this approach in our projects (behind JPA facade)

public abstract class AbstractJpaDao&lt;T extends AbstractEntity&gt; implements GenericDao&lt;T&gt; {

    @PersistenceContext
    protected EntityManager entityManager;

    protected final Class&lt;T&gt; entityClass;

    public AbstractJpaDao(Class&lt;T&gt; entityClass) {
        this.entityClass = entityClass;
    }

    @Override
    public T get(Serializable id) {
        Assert.notNull(id, "Entity ID cannot be null");
        return entityManager.find(entityClass, id);
    }

    @Override
    public List&lt;T&gt; findAll() {
        CriteriaBuilder builder = entityManager.getCriteriaBuilder();
        CriteriaQuery&lt;T&gt; query = builder.createQuery(entityClass);
        Root&lt;T&gt; root = query.from(entityClass);
        query.select(root);
        return entityManager.createQuery(query).getResultList();
    }


EDIT
Also do not put @Transactional on your DAO classes but on Services. Service method describes unit of work which should be done whole or rollbacked.
Consider this simple code

public void save() {
 dao1.delete(entity1);
 dao2.delete(entity2);
}


When second dao fails to delete and you have transactional daos not service, the first entity is lost.

And you save method should not return boolean, but let bubble the exception up into the service layer and let service handle the exception.