`

#{identityManager.deleteUser(userSearch.selectedUser)}

阅读更多

  (1)在seamspace里面的userList的页面中,只用

<h:dataTable 
            id="threads"
            value="#{users}" 
            var="user" 
            styleClass="security"
            cellspacing="0"
            headerClass="header"
            rowClasses="odd,even"
            columnClasses=",,enabled,action">
          <h:column width="auto">
            <f:facet name="header">
              User name
            </f:facet>
            #{user}
          </h:column>
          
          <h:column width="auto">
            <f:facet name="header">
              Action
            </f:facet>
            
            <s:link value="Delete" action="#{identityManager.deleteUser(userSearch.selectedUser)}" 
                    rendered="#{s:hasPermission('seam.user', 'delete')}"
                    />
          </h:column>
 </h:dataTable>

 

value="#{users}" 这样就可以把所有的user全部列出来。如果这里谁有疑问的可以问我,呵呵。

另外在删除的时候identityManager.deleteUser(userSearch.selectedUser)这样就可以轻而易举的删除。

     (2) 我想表达的意思是我自己CMS项目的userList.xhtml有自己的业务逻辑在里面不可能象它这样就可以搞定。我的所有功能我都实现了,现在就剩下删除的功能没有实现。

       因为表有依赖关系在里面所有简单的删除不行。必须先删除user_role表中数据,再删除users表中数据。

但是要用它的那个方法identityManager.deleteUser(userSearch.selectedUser),这种条件是必须用value="#{users}"把所有的users列出来,才能用它。所有我就只能抛弃这样的方法,自己去找了。

     (3)我自己写:

<s:link id="delete" value="Delete"  onclick="JavaScript:if(confirm('Are you sure to delete it?')){return true;}else{return false;}"
	action="#{usersHome.remove}" rendered="true"
	view="/usersadmin/UsersList.xhtml">
        <f:param name="usersId" value="#{_users.id}" />
</s:link>

 我来覆盖掉@Override public String remove(){}方法。但是我在写删除的时候发现这个表user_role没有对应的实体给它,所有用实体对应的删除方法也行不通了。

   (4) 我想用eclipse反向从数据库里面生成实体,把中间表user_role的实体弄出来。结果还是没有达到我要的目的。因为user_role表只有2个字段是:user_id和role_id,且它们一起作为主键。这我就没有见过了。晕死了!! 结果我反向生成的实体,你知道生成了什么吗? 下面是实体的内容。

package org.domain.entityTest.entity;

// Generated 2009-9-10 15:41:59 by Hibernate Tools 3.2.2.GA

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.hibernate.validator.NotNull;

/**
 * UsersRole generated by hbm2java
 */
@Entity
@Table(name = "users_role", catalog = "cms")
public class UsersRole implements java.io.Serializable {

	private UsersRoleId id;

	public UsersRole() {
	}

	public UsersRole(UsersRoleId id) {
		this.id = id;
	}

	@EmbeddedId
	@AttributeOverrides( {
			@AttributeOverride(name = "usersId", column = @Column(name = "users_id", nullable = false)),
			@AttributeOverride(name = "roleId", column = @Column(name = "role_id", nullable = false)) })
	@NotNull
	public UsersRoleId getId() {
		return this.id;
	}

	public void setId(UsersRoleId id) {
		this.id = id;
	}

}

 

package org.domain.entityTest.entity;

// Generated 2009-9-10 15:41:59 by Hibernate Tools 3.2.2.GA

import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.hibernate.validator.NotNull;

/**
 * UsersRoleId generated by hbm2java
 */
@Embeddable
public class UsersRoleId implements java.io.Serializable {

	private long usersId;
	private long roleId;

	public UsersRoleId() {
	}

	public UsersRoleId(long usersId, long roleId) {
		this.usersId = usersId;
		this.roleId = roleId;
	}

	@Column(name = "users_id", nullable = false)
	@NotNull
	public long getUsersId() {
		return this.usersId;
	}

	public void setUsersId(long usersId) {
		this.usersId = usersId;
	}

	@Column(name = "role_id", nullable = false)
	@NotNull
	public long getRoleId() {
		return this.roleId;
	}

	public void setRoleId(long roleId) {
		this.roleId = roleId;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof UsersRoleId))
			return false;
		UsersRoleId castOther = (UsersRoleId) other;

		return (this.getUsersId() == castOther.getUsersId())
				&& (this.getRoleId() == castOther.getRoleId());
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result + (int) this.getUsersId();
		result = 37 * result + (int) this.getRoleId();
		return result;
	}

}

 竟然有2个实体,这个我从来没有见过的。所有在后面写remove方法的时候写不出来。

(5) 最后终于想出来办法了。

@Override
	public String remove(){
		if(this.usersId != null && !"".equals(this.usersId)){
			entityManager.createNativeQuery("delete ur.* from users_role ur where ur.users_id="+this.usersId).executeUpdate();
			
			removeUser = entityManager.find(Users.class, this.usersId);
			entityManager.remove(removeUser);
		}
		return "removed";
}

 

直接用entityManager的createNativeQuery本地SQL语句就可以搞定了。

      依次谨献:我本人。哈哈! 以后可以回顾。

分享到:
评论

相关推荐

    IBM_Tivoli_Identity_Manager

    ### IBM Tivoli Identity Manager 知识点解析 #### 一、IBM Tivoli Identity Manager 概览 **IBM Tivoli Identity Manager (TIM)** 是一款由IBM开发的身份管理解决方案,旨在帮助企业创建一个安全的基础设施,通过...

    td-scdma无线参数

    小区识别码(Cell Identity, CID)用于唯一标识一个小区,它是由基站(Node B)控制的物理实体,提供用户终端与网络之间的无线接口。 #### 6. 小区码(CI) 小区码(Cell Identity, CI)是CID的另一种表述方式,...

    通信方向常用术语及缩略词汇总

    IMSI —— International Mobile Station Identity(国际移动台识别码) 国际移动台识别码是分配给每个移动终端的唯一标识符。 #### 52. TMSI —— Temporary Mobile Station Identity(临时移动台识别码) 临时...

    sql2000常用语句

    EXEC sp_dboption 'my_database', 'single user'; ``` #### d. 收缩数据库允许的未用空间百分比 ```sql DBCC SHRINKDATABASE(my_database, 20); ``` ### 3. 创建和管理表 创建表使用`CREATE TABLE`语句,例如: ``...

    SQL Server 系统存储过程全局变量

    `@@ROWCOUNT`返回上一个数据修改语句(如INSERT、UPDATE或DELETE)影响的行数。这对于确认操作结果和进行事务处理非常重要。 #### 12. `@@SERVERNAME` `@@SERVERNAME`返回服务器实例的名称。这对于跨服务器查询或...

    activiti表结构说明.docx

    - **ACT_IDID**:Identity身份,保存用户、群组、关系等组织机构相关数据。 - **ACT_GEGE**:General通用,属于一些通用配置。 - **ACT_EVT_LOG**:事件日志表,默认未开启。 - **ACT_PROCDEF_INFO**:流程定义的...

    DB2表相关操作的文档二三事儿

    db2 "grant connect on database to user db2admin" ``` 给用户`db2admin`授予连接数据库的权限,这是进行数据库操作的基础。 ##### 22. 创建表空间 ```bash db2 "create schema \"DB2ADMIN\"" ``` 创建一个名为`...

    Apache commons jar包常用类讲解--Jakarta Commons 学习.pdf

    - **IdentityMap**:提供了基于对象身份的映射。 - **LRUMap**:提供了最近最少使用(LRU)缓存。 - **MultiKeyMap**:提供了多键映射的支持。 - **ReferenceMap/ReferenceIdentityMap**:提供了基于引用的映射。 - ...

    YDT 1558-2013 800MHz2GHz cdma2000数字蜂窝移动通信网设备技术要求 移动台(含机卡一体)

    - **UIM (User Identity Module)**:用户身份模块,类似于GSM中的SIM卡,用于存储用户的鉴权信息。 - **CSIM (Combined Subscriber Identity Module)**:结合用户身份模块,将UIM的功能与移动台的其他功能集成在一起...

    怎么让win7更流畅.docx

    ApplicationIdentity服务示例 - 默认状态为“手动”,意味着该服务未启动。 - 如果需要使用AppLocker功能,则需将此服务设置为“自动”启动。 ### 三、服务优化技巧 #### 1. 备份服务状态 修改服务之前,建议备份...

    安卓入门--SVN 服务器安装配置

    - **Identity Authentication**: 身份验证选择Subversion,这意味着使用SVN本身的认证机制进行用户管理。 #### 二、客户端安装 客户端安装包选择了`TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi`。这是一个图形化...

    Portal培訓教材_FromIBM(3)

    - 安装 Identity and Access Management (IAM) 服务 (如 IBM Security Identity Manager) 并安装补丁。 ##### 6. 安装 IHS 并打补丁 - 安装 IBM HTTP Server (IHS),作为 Web 服务器,并安装补丁以提高安全性。 ...

    centos环境下部署openstack.docx

    Identity Service (身份验证服务) - **创建数据库**:使用MariaDB创建数据库。 - **安装和配置Keystone**:`yum install openstack-keystone httpd mod_wsgi` - **编辑配置文件**:修改`/etc/keystone/keystone....

    LTE中各种ID说明.docx编程资料

    - **定义**:GUTI(Globally Unique Temporary UE Identity)是在网络中唯一标识UE(User Equipment)的一种标识方式,它可以减少IMSI和IMEI等敏感信息在网络传输过程中的暴露风险。 - **分配**:GUTI由核心网分配,...

    Identity.Authentication.and.Access.Management.in.OpenStack.2015.12.pdf

    《Identity, Authentication, and Access Management in OpenStack》是一本由Steve Martinelli、Henry Nash和Brad Topol撰写的书籍,该书深入探讨了OpenStack中关键的身份服务——Keystone的实现与部署。随着云计算...

    TIM安装指南

    根据提供的信息,我们可以总结出以下关于IBM Tivoli Identity Manager (TIM) V4.5.0的安装指南的关键知识点: ### 1. IBM Tivoli Identity Manager (TIM) 概述 - **产品版本**: IBM Tivoli Identity Manager 版本 ...

    最新sql考试题

    - **DELETE FROM**:用于删除表中的数据。 #### 3. SQL Server中的重要SQL语句 - **认证与授权**:在SQL Server中,用户访问权限的管理和认证是通过特定的SQL语句实现的。 - **EXEC sp_grantlogin**:用于授予登录...

    hibernate主键生成策略

    而对于MySQL和SQLServer,则利用它们的`identity`特性(即自增主键)。这种策略非常常见,因为它将主键生成的工作完全交给数据库处理,简化了应用程序的复杂度。 #### 2. Assigned `Assigned`策略意味着在插入数据...

Global site tag (gtag.js) - Google Analytics