EJB3.0开发注意问题

一、persistence.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<persistence>

   <persistence-unit name="news">

      <jta-data-source>java:/MySqlDS1</jta-data-source>

      <properties>

         <property name="hibernate.hbm2ddl.auto" value="update" />

      </properties>

   </persistence-unit>

</persistence>

persistence-unit 节点可以有一个或多个,每个persistence-unit 节点定义了持久化内容名称、使用的数据源名称及Hibernate属性。name 属性用作设置持久化名称。jta-data-source 节点用作指定实体Bean使用的数据源名称,指定数据源名称时java:/ 前缀不能缺少,数据源名称大小写敏感。properties 节点用作指定Hibernate的各项属性,如果hibernate.hbm2ddl.auto的值设为create-drop,在实体Bean发布及卸载时将自动创建及删除相应数据库表(注意:Jboss服务器启动或关闭时会引发实体Bean的发布及卸载)

如果你的表已经存在,并且想保留数据,发布实体bean时可以把hibernate.hbm2ddl.auto的值设为noneupdate,以后为了实体bean 的改动能反应到数据表,建议使用update,这样实体Bean添加一个属性时能同时在数据表增加相应字段

persistence.xml要放到META-INF文件下,并打包进JAR文件里才行。

二、实现Serializable接口:

实体bean需要在网络上传送时必须实现Serializable接口,否则将引发java.io.InvalidClassException例外。

 

三、元数据说明:

@Entity注释指明这是一个实体Bean,每个实体Bean类映射数据库中的一个表,@Table注释的name属性指定映射的数据表名称。

实体Bean的每个实例代表数据表中的一行数据,行中的一列对应实例中的一个属性。

@Column注释定义了映射到列的所有属性,如列名是否唯一,是否允许为空,是否允许更新等,他的属性介绍如下:

name: 映射的列名。如:映射Person表的PersonName列,可以在name属性的getName 方法上面加入

@Column(name = "PersonName"),如果不指定映射列名,容器将属性名称作为默认的映射列名。

unique: 是否唯一

nullable: 是否允许为空

length: 对于字符型列,length属性指定列的最大字符长度

insertable: 是否允许插入

updatable: 是否允许更新

columnDefinition: 定义建表时创建此列的DDL

secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。

@Id 注释指定personid属性为表的主键,它可以有多种生成方式:

TABLE:容器指定用底层的数据表确保唯一。

SEQUENCE:使用数据库的SEQUENCE 列来保证唯一

IDENTITY:使用数据库的INDENTIT列来保证唯一

AUTO:由容器挑选一个合适的方式来保证唯一

NONE:容器不负责主键的生成,由调用程序来完成。

@GeneratedValue注释定义了标识字段的生成方式

四、Jboss-4.2.2 lookup EJB 时出现java.lang.Class错误内容

在将通过JNDI获得的Home或者LocalHome接口进行 PortableRemoteObject.narrow或者强制转换为LocalHome的时候,会出现 java.lang.ClassCastException异常。

解决办法

文件D:\jboss\server\all\deploy\jboss-web.deployer\META-INF\jboss-service.xml

修改第43

<attribute name="UseJBossWebLoader">false</attribute><attribute name="UseJBossWebLoader">true</attribute>

原因分析

修改前:JBoss使用了TomcatClass Loader来加载Web应用的类

修改后:JBoss使用JBoss统一的Class Loader来加载Web应用的类 ssCastException

http://hi.baidu.com/43840397/blog/item/c17cb40fe583abe236d122de.html  蔡越锐

你可能感兴趣的:(Hibernate,bean,xml,jboss,网络应用)