一、
(1)数据库表:user_site,在创建时候没有建立外键关系.有表user和site。user_site是中间表,它们是多对多关系。
(2)用seam反向生成的实体是这样的:
public class UserSite implements java.io.Serializable {
private Long id;
private Long userId;
private Long siteId;
}
这里并没有对应关系。
(3)这样写查询的时候比较方便。
public List<Site> getSiteResults() {
Long userid = user2.getId();
siteList.setEjbql("select distinct(s) from UserSite userSite,Site s where userSite.siteId=s.id and userSite.userId = "+userid);
if(siteList.getResultCount()>0){
return siteList.getResultList();
}else{
return null;
}
}
这里一定要注意要加上distinct,因为是多对多的关系,在中间表中肯定有重复的数据,一定要过滤掉。
二、
(1)movie_actor表是中间表,但是它在创建的时候有设置外键。有movie和actor表,它们是多对多的关系。
(2)用seam反向生成实体时:代码如下:
public class MovieActor implements java.io.Serializable {
private Long id;
private Actor actor;
private Movie movie;
}
这里就有对应的关系。
(3)这时的查询语句就麻烦了。哈哈哈! 终于找到解决的办法了。
public List<Movie> getMovieResults() {
movieList.setEjbql("select distinct(movie) from Movie movie, MovieActor movieActor where movie.id=movieActor.movie.id and movieActor.actor.id = "+actorId);
if(movieList.getResultCount()>0){
return movieList.getResultList();
}else{
return null;
}
}
上面那个方法太复杂啦,知道主键ID,可以有更快的办法来找到这个类对象。下面是代码:
public StorageServer getStorageServerObject(Long storageServerId){
if(storageServerId != null && !"".equals(storageServerId)){
return entityManager.find(StorageServer.class, storageServerId);
}else{
return null;
}
}
三、
第一种的下拉列表框的代码:
(1)
<s:decorate id="serverIdField" template="../layout/edit.xhtml">
<ui:define name="label">website server</ui:define>
<h:selectOneMenu value="#{site.serverId}" style="width:115px;">
<f:selectItems value="#{siteHome.serverItems}"/>
<a:support event="onblur" reRender="serverIdField" bypassUpdates="true" ajaxSingle="true"/>
</h:selectOneMenu>
</s:decorate>
(2)后台java类:
@SuppressWarnings("unchecked")
public SelectItem[] getServerItems(){
Query query = entityManager.createQuery("select storageServer from StorageServer storageServer where storageServer.type = 2");
List<StorageServer> list = query.getResultList();
SelectItem[] serverItems = new SelectItem[list.size()+1];
serverItems[0] = new SelectItem("","");
if (list.size() > 0){
for (int i = 0; i < list.size(); i++){
StorageServer server = list.get(i);
serverItems[i+1] = new SelectItem(server.getId(),server.getName());
}
}
return serverItems;
}
第二种的下拉列表框:
(1)这里的页面中还要加个标签库:
xmlns:c="http://java.sun.com/jstl/core"
<s:decorate id="selectsites" template="../layout/edit.xhtml" >
<ui:define name="label">Select Sites</ui:define>
<h:selectManyMenu value="#{newscreate.chosesites}" style="float:left;width:115px;height:80px;">
<c:forEach items="#{newscreate.siteResults}" var="site">
<f:selectItem itemValue="#{site.id}" itemLabel="#{site.name}"></f:selectItem>
</c:forEach>
</h:selectManyMenu>
</s:decorate>
(2)后台java代码:
public List<Site> getSiteResults() {
Long userid = user2.getId();
siteList.setEjbql("select distinct(s) from UserSite userSite,Site s where userSite.siteId=s.id and userSite.userId = "+userid);
if(siteList.getResultCount()>0){
return siteList.getResultList();
}else{
return null;
}
}
分享到:
相关推荐
NULL 博文链接:https://peacherdiy.iteye.com/blog/468478
seam setup 输入项目原型和数据库信息 seam create-project 创建基础项目结构 seam generate 反向工程数据库,创建管理数据库的CRUD程
seam中的注解总结,包括三种JPA和seam自身的标签
seam_carving代码实现 图像缩放
NULL 博文链接:https://sxlkk.iteye.com/blog/346079
1.4. Seam 和jBPM:待办事项列表(todo list)示例..................................................................................................... 32 1.4.1. 理解代码....................................
这是中文手册,Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了...
seam in action seam in action seam in action seam in action seam in action seam in action seam in action
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...
JBOSS_SEAM配置
seam级联菜单例子
seam介绍
JBoss Seam JBoss Seam JBoss Seam
seam资料seam资料seam资料seam资料seam资料seam资料seam资料seam资料
seam carving的相关代码实现
1、 Java环境的安装和配置 2、 JBoss环境的安装和配置 3、 Ant环境的安装和配置 4、 Seam环境的安装和配置 5、 Eclipse环境及JBoss Tools 插件的安装和配置
seam下一代web开发框架
seam 中文文档 pdf 格式 JSF+EJB3.0快速开发框架Seam的中文版向导。。。
Jboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in ActionJboss Seam in Action