Jboss下开发ejb应用之一实体bean的应用
Jboss下开发ejb应用之一实体bean的应用
这是一篇紧接着上一篇《Jboss下开发ejb应用之一会话bean的应用》而写的
实体类应用首先得编写实体类
实体类标注
/** * 用户表 * @author XuGuo * @since 2010-01-04 */@Entity@Table(name="test_user")public class User implements Serializable {private static final long serialVersionUID = 1L; @Id@Column(name="userId") @GeneratedValue(strategy=GenerationType.AUTO)//@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="S_test_user")private Long userId;//用户表主键 这里采用oracle的序列作为主键ID值@Column(name="userName")private String userName;//用户姓名@Column(name="uaerAge")private int userAge;//用户年龄@Column(name="userAddress")private String userAddress;//联系地址@Temporal(value=TemporalType.DATE)private Date createdDate;//创建时间
其中表的标注,ID主键标注 普通字段标注
实体类的持久化有实体管理器管理
@PersistenceContext protected EntityManager entityManager;/** * 保存用户 * @param user */public void saveUser(User user){entityManager.persist(user);}
@PersistenceContext这个实体管理器的标注别忘记了,这有这样才能表示通过容器的实体管理器进行持久化操作
使用实体bean这里有几点注意的
第一是实体类指定使用那个数据源:
各种数据库的数据源配置模版你可以在$JBOSS_HOME/docs/examples/jca 目录中找到,默认名称为:数据库名+ -ds.xml 。你可以选择一个相应的文件然后修改里面相应的参数,并拷贝到在$JBOSS_HOME/server/all/deploy目录下或者$JBOSS_HOME/server/default/deploy目录下(这里视你启动的模式,如果视在all模式启动的就在all/deploy目录下,如果以default模式启动的就放在default/deploy目录下)
第二是拷贝相应数据库驱动程序包:这里视你的启动模式(all或者default)拷贝到相应的lib目录下($JBOSS_HOME /server\all/lib或者$JBOSS_HOME /server/default/lib目录下)
第三是设置实体bean绑定的数据源:persistence.xml就是实体bean指定数据源的配置文件,一般这个文件放在classes根目录下的META-INF目录中,如果工程没有这个目录,请自己建立这样一个目录(源程序根目录src下META-INF),然后再把这个persistence.xml文件放到这个目录下。
第四点就是persistence.xml中的数据源jndi名称和deploy目录下的数据源文件中的jndi名称一致。以oracle9i为例:
Deploy目录下的数据源文件名为:oracle-ds.xml
Jndi名称配置为:
<datasources> <local-tx-datasource> <jndi-name>OracleDS</jndi-name> <connection-url>jdbc:oracle:thin:@serverip:1521:sid</connection-url>
那么persistence.xml配置文件下的数据源jndi名称也要视这个名称
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="jbossdb"> <jta-data-source>java:/OracleDS</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/> </properties> </persistence-unit></persistence>
本人采用jboss的版本是jboss-4.2.2.GA
服务端,客户端工程项目我都发布上来
以供大家参考
server-client-project.rar附件中的cms是实体bean服务端程序 ejbclient是客户端程序