事务是企业应用开发中的重要概念,对于部分 Web 应用,事务也是非常重要的(试想一下,如果没有事务,ATM 和网银的操作将会使多么的危险)。下面我就对 Java EE 应用中各种事务技术做一个简介。
数据库:
无论 Java EE 中采用了何种的事务技术,归根结底都是基于数据库的事务。不论是本地事务,还是分布式事务,都必须有数据库的支持才行。各种
Java EE 事务技术也都调用了数据库的事务功能。提到事务,必然要提到事务的四个基本特性:原子性、一致 ...
本文将简单谈谈我对 EJB 3.0 的两种 Persistence Context 和 Seam-managed Persistence Context 的不同点的理解、所要解决的问题和我自己所疑惑的问题。
EJB 3.0 (JPA) 的 Persistence Context
大家在使用 EJB 3.0 的时候会注意到 EJB 3.0 中的容器管理 Persistence Context 有两种类型,一种是 Transaction,另一种是 Extended。这是一个较 H ...
- 18:21
- 浏览 (146)
- 评论 (1)
- 分类: Java
- 发布在 JBoss SEAM 圈子
原来知道 Java Web 应用的 DD 中的 <security-constraint> 配置,但是并没有真正配置过。昨天下午试着配了一下,发现问题还是有一些的。
说一下两个需要注意的问题:
<security-constraint> 的子元素 <http-method> 是可选的,如果没有 <http-method> 元素,这表示将禁止所有 HTTP 方法访问相应的资源。
子元素 <auth-constraint> 需要和 <login-config> 相配合使用,但可以被单独使用。如果没有 <auth-constraint> 子元素,这表 ...
最近本人正在将 Seam 中提供的示例重写一遍,以锻炼实际编写 Seam 应用的能力。在将 Seam 提供的 Messages 示例重写的时候遇到了问题。
Messages 示例原本使用的是 HSQLDB,在我转移到 MySQL 的时候,程序始终无法正常原因,经过了两天的调试,终于发现了原因。原来 Messages 中的 EntityBean "Message" 有个字段名为 "Read",在 HSQLDB 下没有问题,但是由于 "Read" 是 MySQL 的保留名,所以在创建表的时候就会有问题。
下面这个链接是 MySQL 的保留名词,大家遇到类似问题的时候可以查查,看看是不是使用了保 ...
- 18:49
- 浏览 (104)
- 评论 (1)
- 分类: Java
- 发布在 JBoss SEAM 圈子
Seam - 无缝集成 JSF
Spring into Seam, Part 1: Build a Spring-Seam hybrid component
Spring into Seam, Part 2: When stateless and stateful collide
enum 能够让你摆脱掉大部分的“public static final”变量声明
通常,你只需要用到 enum 的基本功能
enum 是 class,所以也可以有方法,也可以实现接口
enum 如此简单:
public enum Grade {
A, B, C, INCOMPLETE
}
最后不需要分号(某本书上加了分号)
从 Java SE 5.0 之后,switch 开始支持 enum
ArrayList Vector LinkedList 区别与用法
看了 kyo100900 翻译的《EJB 3.1 真的来了吗?》之后,我也凑个热闹,谈谈 EJB 3.1 的新特性。
1. 可选的 EJB 接口:
记得刚开始学 EJB 的时候,被 EJB 的接口概念搞得很晕。最不好的是要写一个 Session EJB 就要写一对的接口。在 EJB 3.0 中,我们虽然可以通过 Annotation 简化 EJB 业务接口的声明,但是我们还是免不了要写接口。EJB 3.1 的草案中,我们看到了将 EJB 业务接口改为可选的新特性。我们可以直接将被 @Sessionful 或 @Sessionless 注释的 Bean 作为 Session ...
这段时间在学 Seam。Seam 有一个非常方便的代码生成工具 seam-gen。在将用 seam-gen 生成的代码导入 Eclipse 项目之后,我发现每当我保存对源码的修改之后,Eclipse 都会执行 Ant 任务。对于我这种小菜来说,这是非常令人吃惊的现象。
研究一番之后,发现其实这样很简单。要实现这样的目的无非需要两个文件:.project 和 *.launch 文件。.project 是 Eclipse 的必备文件,所以必定是位于项目的根目录中;*.launch 一般也位于根目录中。
在 seam-gen 生成的 .project 文件中有这么几行代码:
<buil ...
第一,注释的继承
Class 的属性可以继承,但是注释就不可以了。写一个 Domain 基类,并在其中加入使用了 @Id 和 @GeneratedValue 注释的 id 属性。但在运行时,编译器报告子类缺少 identifier。如果在子类中加入 id 属性(这是需要在基类中去掉 id 属性),这时程序就会运行成功。我在 Spring 的 Samples 中也发现每个 Domain 类都有 id 属性。这样有点浪费代码,但又没有办法。
第二,注释的位置
注释可以加在属性上,也可以加在 getter 方法上,一般讲这样是可以的。但是还是将所有的注释都加在 getter 方法为好。在我的程序中 ...
引用保存各种信息对于应用程序来说非常平常,大多数时候它们是保存在关系数据库中。数据库处理规范数据类型十分在行,但是在处理如图像、文档等二进制数据时却不是那么得心应手。尽管可以用文件系统作为替代——而且它们还提供了更好的性能。但它们既没有提供用于搜索信息的查询语言,也没有提供表示关系或事务的概念。
上面一段话引用自 infoQ 上的集成Java内容仓库和Spring。其中所表达的需求正式 JCR 所要解决的。似乎在 Java EE 领域 JCR 会有很大的需求。
JCR 的某些功能和 JDBC 有些相像,也有事务和锁,毕竟都是为了解决数据存储而出现的,只不过 JCR 要更广义点。
现在 S ...
最近一段时间我在学习 Terracotta,一种 JVM 级的集群化技术。infoQ 上的<> 是一篇简要介绍 Terracotta 技术原理和应用的文章,适合大家为了解 Terracotta 而去阅读。为了能更好的理解这篇文章,也希望能够对大家了解 Terracotta 有所帮助,下面我将这篇文章从 Object Identity and Serialization 开始的部分的每段大意写了出来。写的不好,大家凑合看吧(*^__^*) 嘻嘻……
对象识别与序列化
Terracotta 不使用 Java 序列化去复制对象的改变。
这种方式要比使 ...
update() 与 merge()
update() 与 merge() 的功能是相同的,都是持久化 Detached 状态的对象。但如果当前 Session 中存在两个或两个以上的,持久化标示相同的对象的话,update() 操作是会抛出异常的。而 merge() 会合并你对持久化对象的改动。
除了上面一点 merge() 与 update() 不同外,merge() 可以被看做是 saveOrUpdate()。
在 Hibernate 参考文档的 第 10 章 与对象共事 中有关于 saveOrUpdate() 与 merge() 不同点的 ...
Table
Table用来定义entity主表的name,catalog,schema等属性。
元数据属性说明:
name: 表名
catalog: 对应关系数据库中的catalog
schema:对应关系数据库中的schema
UniqueConstraints:定义一个UniqueConstraint数组,指定需要建唯一约束的列
@Entity @Table(name="CUST") public class Customer { ... }
SecondaryT ...
- 浏览: 6934 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
我的相册
BPMS 架构
共 1 张
共 1 张
最近加入圈子
最新评论
-
也谈算法的重要性
-- by ryuluck -
看了看《Seam in Action》 ...
期待
-- by 打倒小日本 -
EJB 3.0 与 Seam-managed ...
留个足迹 便于以后参谋
-- by isky -
将 Seam Messages 示例转 ...
谢谢,分享经验
-- by huochai -
学习 Spring 2.5 的新特性 ...
[b][/b]dad
-- by jspzhao






评论排行榜