Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <pre><code>public interface RootDAO&lt;T&gt; extends Serializable { public List&lt;T&gt; loadAll(); public T save(T entity); public void delete(T entity); public void markAsDeleted(T entity); public T get(Serializable id); public T load(Serializable id); public void saveOrUpdate(T entity); public void deleteAll(Collection&lt;T&gt; entities); public void saveOrUpdateAll(Collection&lt;T&gt; entities); public List&lt;T&gt; find(String hql); public void update(T entity); public T getByExampleUnique(T entity); public List&lt;T&gt; getByExampleList(T entity); public List&lt;T&gt; listAll(); public Object execute(HibernateCallback action); public List&lt;T&gt; findByNamedParam(String queryString, String paramName,Object value); public List&lt;T&gt; findByNamedParam(String queryString, String[] paramNames,Object[] values); . . . . } </code></pre> <hr> <pre><code>@Component public abstract class RootDAOImpl&lt;T&gt; extends HibernateDaoSupport implements RootDAO&lt;T&gt; { protected Logger logger = LoggerFactory.getLogger(getClass()); private Class&lt;T&gt; clazz; @Autowired public void init(SessionFactory factory) { setSessionFactory(factory); } public RootDAOImpl(Class&lt;T&gt; clazz) { this.clazz = clazz; } public void delete(T entity) { getHibernateTemplate().delete(entity); } public void delete(String id) { getHibernateTemplate().delete(new FbUser(id)); } public void markAsDeleted(T entity) { // Mark entity as deleted try { Method setDeletedMethod = clazz.getDeclaredMethod("setDeleted", Boolean.class); setDeletedMethod.invoke(entity, true); getHibernateTemplate().saveOrUpdate(entity); } catch (Exception e) { e.printStackTrace(); } // actually delete // getHibernateTemplate().delete(entity); } @Override public void deleteAll(Collection&lt;T&gt; entities) { getHibernateTemplate().deleteAll(entities); } @Override public void saveOrUpdateAll(Collection&lt;T&gt; entities) { getHibernateTemplate().saveOrUpdateAll(entities); } @SuppressWarnings("unchecked") @Override public T get(Serializable id) { return (T) getHibernateTemplate().get(clazz, id); } @SuppressWarnings("unchecked") @Override public T load(Serializable id) { return (T) getHibernateTemplate().load(clazz, id); } @SuppressWarnings("unchecked") @Override public List&lt;T&gt; find(String hql) { return (List&lt;T&gt;) getHibernateTemplate().find(hql); } @Override public Object execute(HibernateCallback action) { return getHibernateTemplate().execute(action); } . . . } </code></pre> <hr> <pre><code>@Repository public class UserDAOImpl extends RootDAOImpl&lt;User&gt; implements UserDAO{ public UserDAOImpl() { super(User.class); } } </code></pre> <p>If you are not using a DI framework you may need to keep a reference for SessionFactory and pass it yourself when you create the DAO instance.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload