Hibernate ? ActiveRecord ? pretty code!
看到了段代码,贴出来聊聊
public class Persistent implements Lifecycle, Validatable, Serializable { protected Long _id; protected int _version; protected boolean _versionCheckRequired; public Long getIdentifier() { return _id; } public void setIdentifier(Long id) { _id = id; } public int getVersion() { return _version; } public void setVersion(int version) { _version = version; } public Long persist() throws HibernateException, SQLException { HibernateSession.currentSession().saveOrUpdate(this); return _id; } public void delete() throws HibernateException, SQLException { HibernateSession.currentSession().delete(this); } public void refresh() throws HibernateException, SQLException { HibernateSession.currentSession().load(this, _id); } public void lock() throws HibernateException, SQLException { HibernateSession.currentSession().lock(this, LockMode.UPGRADE); } public void checkVersion(int version) throws StaleObjectException { if (version != _version) { throw new StaleObjectException(); } _versionCheckRequired = false; } public boolean onSave(Session s) throws CallbackException { return NO_VETO; } public boolean onDelete(Session s) throws CallbackException { return NO_VETO; } public boolean onUpdate(Session s) throws CallbackException { return NO_VETO; } public void onLoad(Session s, Serializable id) throws CallbackException { _versionCheckRequired = true; onLoad(s, (Long) id); } protected void onLoad(Session s, Long id) throws CallbackException { } public void validate() throws ValidationFailure { if (_versionCheckReqired) { throw new ValidationFailure("version check is required"); } }}