看到了段代码,贴出来聊聊
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");
}
}
}
怎么样!?
分享到:
相关推荐
在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...
Castle ActiveRecord是NHibernate ActiveRecord实现的一个版本,提供了额外的功能和方便性。它是一个AOP(面向切面编程)框架,能够自动管理对象的生命周期,包括事务、验证和持久化。 9. **最佳实践** 在实际...
### ActiveRecord在Ruby与Rails中的高级应用 #### 一、引言 《Pro ActiveRecord Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord框架来高效地处理Ruby on Rails中的数据库操作。本书由Kevin ...
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】的功能不完整!
Castle.ActiveRecord.Generator 是一个基于 Castle ActiveRecord 框架的代码生成工具,它极大地简化了在.NET环境中使用ActiveRecord模式进行数据库操作的工作流程。ActiveRecord是面向对象持久化的一个设计模式,将...
在Java世界里,虽然Hibernate和JPA等框架已经非常成熟,但Ruby on Rails(ROR)中的ActiveRecord模式也受到了不少Java开发者的青睐,并有了一些移植到Java平台的实现。 ActiveRecord是一种对象关系映射(ORM)模式...
《C# Castle.ActiveRecord 源码示例教程》 Castle.ActiveRecord 是一款基于 C# 的轻量级对象关系映射(ORM)框架,它为 .NET 开发者提供了简化数据库交互的方式。这个教程主要围绕如何使用 Castle.ActiveRecord 在...
Castle.ActiveRecord官方已经停止更新了,官方最高支持到NHibernate 3.1.0.4000,这个版本还有不少问题(例如:[NH-2213] - CLONE -Wrong parameters order in IQuery with SetParameterList and Filter)。...
4. **查询API**:Castle ActiveRecord提供了强大的查询API,包括简单的属性查询、复杂的HQL(Hibernate Query Language)以及LINQ支持。这使得开发者可以方便地进行数据筛选、聚合、排序等操作。 5. **性能优化**:...
描述中提到"scala-activerecord.zip",这可能是Scala Activerecord的主要库文件,而"scala activerecord scalatraactiverecord"则暗示Scala Activerecord可能与ScalatraActiverecord有关,ScalatraActiverecord是一...
从提供的文件信息中,我们可以得知这篇博文主要讨论的是如何使用C# 4.0调用IronRuby中的ActiveRecord功能。不过由于博文链接和部分详细内容无法提供,知识点将基于文件信息部分和公共知识构建。 知识点一:IronRuby...
- **查询语言**:支持 LINQ to NHibernate 和 HQL(Hibernate Query Language),用于编写复杂的查询语句。 5. **事务处理** - ActiveRecord 提供了内置的事务管理,可以在方法中使用 `using (var tx = Session....
Castle.ActiveRecord 的资料很多,但是WINFORM的没几个,于此我专门写了个例子献给初学Castle.ActiveRecord的童鞋们,希望这篇文档能够帮到你们。这个例子使用的是ACCESS数据库,从单表,一对多,多对多,数据绑定,...
在本示例中,我们将深入探讨MyBatisPlus如何通过ActiveRecord模式实现CRUD(创建、读取、更新、删除)操作。ActiveRecord是一种设计模式,它将数据库表中的每一条记录映射为一个对象,通过这个对象可以直接进行CRUD...
userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta
ActiveRecord最终版,由于ActiveRecord引用了ISet集合,Iesi.Collections.3.4.1.4000以后已经把ISet去掉了,所以ActiveRecord引用的NHibernate的版本的更新只能到3.4.1.4000此为止。 引用其他资源版本如下: ...
- castle-sourcecode.zip 可能包含了 Castle ActiveRecord 的源代码,对于深入了解其工作原理和进行定制开发非常有用。 - bin 文件夹通常包含编译后的库文件,可以直接在项目中引用。 - ReleaseNotes 可能包含了该...
Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。