看到了段代码,贴出来聊聊
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");
}
}
}
怎么样!?
分享到:
相关推荐
ActiveRecord简单实例_activerecord.zip
Castle.ActiveRecord For .NET FrameWork 2.0 如果你想使用Castle.ActiveRecord,但又不想使用.NET Framework 3.0/3.5/4.0或更高版本,那么这个就是你所需要的,For .NET FrameWork 2.0,我整理了好久,自己从官方...
将ActiveRecord中的NHibernate升级到3.3.0GA,排除编译的bug问题,保留ActiveRecord的完整功能,【Castle.ActiveRecord 升级NHibernate到3.4.0GA】的功能不完整!
Pro ActiveRecord Databases with Ruby and Rails.pdf
Castle.ActiveRecord官方已经停止更新了,官方最高支持到NHibernate 3.1.0.4000,这个版本还有不少问题(例如:[NH-2213] - CLONE -Wrong parameters order in IQuery with SetParameterList and Filter)。...
CASTLE ACTIVERECORD学习实践(1):快速入门指南 CASTLE ACTIVERECORD学习实践(2):构建配置信息 CASTLE ACTIVERECORD学习实践(3):映射基础 CASTLE ACTIVERECORD学习实践(4):实现ONE-MANY关系的映射 CASTLE...
MyBatisPlus的ActiveRecord实现CRUD示例代码
Castle.ActiveRecord 的资料很多,但是WINFORM的没几个,于此我专门写了个例子献给初学Castle.ActiveRecord的童鞋们,希望这篇文档能够帮到你们。这个例子使用的是ACCESS数据库,从单表,一对多,多对多,数据绑定,...
userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta
ORM的中文教程 英文的API 为什么是2分呢? 因为我很2 -_-!
scala-activerecord.zip,scala activerecord scalatraactiverecord类似于scala的orm库
C# Castle.ActiveRecord CS源码示例教程.zip
Castle ActiveRecord快速入门指南,ActiveRecord帮助文档
ActiveRecord最终版,由于ActiveRecord引用了ISet集合,Iesi.Collections.3.4.1.4000以后已经把ISet去掉了,所以ActiveRecord引用的NHibernate的版本的更新只能到3.4.1.4000此为止。 引用其他资源版本如下: ...
Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。
ROR-ActiveRecord持久层框架的Java实现
SchemaPlus 提供增强和扩展ActiveRecord的集合
ActiveRecord的model创建,常用的一些增删改查以及HQL的使用
简单Castle.ActiveRecord.Generator的例子。 包括添加,修改,删除,察看的基本功能。 包含建库脚本。
SwiftRecord, 用于快速的核心数据的ActiveRecord SwiftRecord 由 tweet tweet tweet @arkverse feature feature任何功能请求。 反馈非常感谢你 !ActiveRecord风格核心数据对象管理。 非常方便且易于使用