- 浏览: 23194 次
最新评论
-
monkmonk0:
我想问下,pre和post分别在什么地方使用啊,post执行时 ...
[转]Hibernate 事件监听 -
monkmonk0:
...
[转]Hibernate 事件监听
文章列表
传统硬件的堵塞如下,从内存中读取数据,然后写到磁盘,而CPU一直等到磁盘写完成,磁盘的写操作是慢的,这段时间CPU被堵塞不能发挥效率。
使用非堵塞的DMA如下图:CPU只是发出写操作这样的指令,做一些初始化工作,DMA具体执行,从内存中读取数据,然后写到磁盘,当完成写后发出一个中断事件给CPU。这段时间CPU是空闲的,可以做别的事情。这个原理称为Zero.copy零拷贝。
http://blog.csdn.net/luo_yifan
GOOD
要做一个照片数据转移,从一个Oracle的Blob字段 到 另一oracle的Long Raw字段:
Blob字段的JPA配置:
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "PHOTO", columnDefinition = "BLOB")
private byte[] photo;
Long Raw字段的JPA配置:
@Basic(fetch = FetchType.LAZY)
@Column(name = "PHOTO")
private byte[] co ...
String result = new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
byte[] bytes = new sun.misc.BASE64Decoder().decodeBuffer(result);
在hibernate Annotation中,实体BLOB、CLOB类型的注解与普通的实体属性有些不同,具体操作如下:
BLOB类型,类型声明为byte[]:
private byte[] content;
注解:
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "CONTENT", columnDefinition = "BLOB",nullable=true)
public byte[] getContent() {
return this.content;
...
Hibernate 事件监听
事件监听是JDK中常见的一种模式。 Hibernate中的事件监听机制可以对Session对象的动作进行监听,一旦发生了特殊的事件,Hibernate就会调用监听器类中的事件处理方法。在某些功能的设计中,既可以使用Hibernate的拦截器实现,也可以使用Hibernate的事件监听来实现。
Hibernate 定义了多个事件涵盖了持久化过程中的不同生命同期,即Session对象中的第一个方法均分别对应事件。调用某个方法时就会触发相应的事件,并被预先设置的监听器收到及处理。
Hibernate中事件监听器接口均在org.hibernate.event包中,事件 ...
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。
但使用eclipse+tomcat做测试的时候发现servlet-api还是被打包到lib下面了,你要把maven插件 ...
一、创建一个插件项目
> mvn archetype:create -DgroupId=org.sonatype.mavenbook.plugins -DartifactId=first-maven-plugin -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-mojo
maven会自动到远程库去下载maven-archetype-mojo的插件;
创建成功会生成一个first-maven-plugin的文件夹,里有一个pom.xml文件,内容 ...
可以把profiles定义在:
A、%M2_HOME%/conf/settings.xml,这是针对该部电脑的所有user的profiles,是global profiles,它会影响所有的maven project build
B、user/.m2/settings.xml,这是针对当前user的profiles,是user级的profiles,它会影响当前user的所有maven project build
C、定义在pom.xml文件里面,这是仅针对该project的profiles,是project级的profiles
定义在这些profiles中,涉及范围越窄 ...
一、设置JDK1.5环境变量;
二、解压maven,设置Maven环境变量path = %M2_HOME%\bin;
三、在DOS窗口:
E:\> mvn archetype:create -DgroupId=com.mvn -DartifactId=mvntest
创建一个目录名为test的jar工程
E:\> mvn archetype:create -DgroupId=com.mvn -DartifactId=mvntest -DarchetypeArtifactId=maven-archetype-webapp
创建一个创建一个目录名为test的war ...
http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
Maven默认是用JDK1.3去编译, 当代码中遇到注解、泛型等功能时,就会出如下错误:
“annotations are not supported in -source 1.3”
解决办法:
在项目pom.xml文件添加如下内容,强制用指定的JDK版本编译;
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
& ...
build.xml
<project name="myApp" default="checkout">
<property name="cvs.repository" value=":ssh:uer:pw@192.168.1.1:22/home/cvsroot"/>
<property name="cvs.package1" value="app1/code"/>
<property name="cvs ...
Maven生命周期详解http://juvenshun.iteye.com/blog/213959
Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二,这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install 这样的命令是通用的。我想,一定是吸收了许多项目的经验,Maven才能定义 ...