欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

guzz1.2.8 beta1发布--支持annotation

程序员文章站 2022-04-05 22:14:59
...
guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。

guzz主要功能与特点:
  • 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
  • 支持像hibernate一样的对象化持久、映射和方便的增删改查
  • 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
  • 支持应用程序使用大量的数据库和主从读写分离
  • 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
  • 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
  • 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
  • 支持组件化服务(SOA),构建企业/项目实施基础平台
  • 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
  • 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
FAQ:http://code.google.com/p/guzz/wiki/AboutFAQ

1.2.8 beta1更新介绍:

  • 支持(JPA)annotation 。支持按照JPA规范的annotation进行对象映射声明,同时为了实现guzz特有的功能,对annotation进行了扩展。扩展方式与hibernate类似,如果看到与hibernate annotation名字相同的注解,含义和用法也基本相同。

  • 修正了一个taglib bug 。修正了Guzz面向对象数据库操作标签无法处理包含运算符的特殊条件的错误。

应用示例说明:

通过annotation定义一个域对象:
@javax.persistence.Entity
@org.guzz.annotations.Entity(businessName = "comment")
@Table(name="TB_COMMENT", shadow = CommentShadowView.class)
@TableGenerator(
		name = "commentGen",
		table="tb_id",
		catalog="somelog",
		schema="some_schema",
		pkColumnName="pk",
		pkColumnValue="2",
		valueColumnName="id_count",
		initialValue=100,
		allocationSize=20
		/*
		 * create table tb_id(pk int(11) primary key, id_count int(11) default 0)
		 * insert into tb_id(pk, id_count) values(2, 100)
		 */
)
public class Comment {

	@javax.persistence.Id
	@GeneratedValue(generator="commentGen", strategy=GenerationType.TABLE)
	private int id ;
	
	private int userId ;
	
	private String userName ;
	
	@Column(name="DESCRIPTION")
	private String content ;
	
	private Date createdTime ;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Date getCreatedTime() {
		return createdTime;
	}

	public void setCreatedTime(Date createdTime) {
		this.createdTime = createdTime;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public int getUserId() {
		return userId;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}
	
}


完成id, userId, userName, content, createdTime的映射。

在guzz主配置文件中声明域对象定义:
<a-business class="org.guzz.test.Comment"/>


更多介绍请参看使用手册:

Guzz Annotation使用帮助:http://code.google.com/p/guzz/wiki/TutorialHbmAnnotation

Guzz Annotation参考手册:http://code.google.com/p/guzz/wiki/AppendJPAAnnotation

下一版本计划:

  • 改进remote service,提供更多内置的rpc协议支持。
  • 其他
相关标签: Hibernate Google