快速业务通道

EJB 3.0开发指南之依赖值对象 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
"FIRST") }),

@DependentAttribute(name = "last", column ={ @Column(name = "LAST") }) })

来声明,并指定这个依赖类的两个属性first和last,并映射到数据表的FIRST和LAST列上。

Name.java

package com.kuaff.ejb3.dependent; import java.io.Serializable; import javax.ejb.AccessType; import javax.ejb.DependentObject; @DependentObject(access = AccessType.PROPERTY) public class Name implements java.io.Serializable { private String first; private String last; public Name() {} public Name(String first, String last) { this.first = first; this.last = last; } public String getFirst() { return first; } public void setFirst(String first) { this.first = first; } public String getLast() { return last; } public void setLast(String last) { this.last = last; } }

这个值对象也很简单,和一般的javaBean差不多,但有两个地方需要注意:

1. 这个类实现了java.io.Serializable接口

2. 这个类使用@DependentObject做了注释

StudentDAO.java

package com.kuaff.ejb3.dependent; import javax.ejb.Remote; import java.util.List; @Remote public interface StudentDAO { int create(String first, String last, String grade, String email); Student find(int id); List findByFirstName(String name); List findByLastName(String name); List findByEmail(String email); void merge(Student s); }

EJB 3.0开发指南之依赖值对象(3)

时间:2009-11-27 天极

这个会话Bean接口提供查找用户的方法。

StudentDAOBean.java

package com.kuaff.ejb3.dependent; import java.util.List; import javax.ejb.EntityManager; import javax.ejb.Inject; import javax.ejb.Stateless; @Stateless public class StudentDAOBean implements StudentDAO { @Inject private EntityManager manager; public int create(String first, String last, String grade, String email) { Student student = new Student(); student.setName(new Name(first,last)); student.setGrade(grade); student.setEmail(email); manager.create(student); return student.getId(); } public Student find(int id) { return manager.find(Student.class, id); } public List findByFirstName(String name) { return manager.createQuery("from Student s where s.name.last = :name").setParameter("name", name).listResults(); } public List findByLastName(String name) { return manager.createQuery("from Student s where s.name.first = :name").setParameter("name", name).listResults(); } public List findByEmail(String email) { return manager.createQuery("from Student s where s.email = :email").setParameter("email", email).listResults(); } public void merge(Student s) { manager.merge(s); } }

这个是会话Bean的实现类。可以看到根据值对象的属性查找主实体Bean。

Client.java

package com.kuaff.ejb3.dependent; import javax.naming.InitialContext; import javax.naming.NamingException; import java.util.List; public class Client { public static void main(String[] args) throws NamingException { InitialContext ctx = new InitialContext(); StudentDAO dao = (StudentDAO) ctx.lookup(StudentDAO.class.getName()); int id = dao.create("晁","岳攀"

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号