这几天,在做一个OA的系统,涉及到了不少的内容,如组织机构(机构管理和人员管理) 和基于ACL的权限管理,公文管理和工作流的管理,等等,呵呵!!
这里的机构和人员采用的是职能型的设计方式.
记录点心得:
(1)首先在做一个系统时候,要仔细阅读需求分析书.
(2) 建立相关的领域模型,根据领域模型创建实体类模型->可以使用ant加xdoclt的方式,生成相应的影像文件和配置文件.
(3)开始,对组织机构模块进行开发,进行相关的领域模型,可以使用ant加xdoclt的方式,生成相应的影像文件和配置文件
先建立一个人员类(person.java类)
package com.bjsxt.oa.model;
/**
*
* @author Administrator
* @hibernate.class table="T_Person"
*/
public class Person {
/**
* @hibernate.id
* generator-class="native"
*/
private int id;
/**
* @hibernate.property
*/
private String name;
/**
* @hibernate.property
*/
private String sex;
/**
* @hibernate.property
*/
private String address;
/**
* @hibernate.property
*/
private String duty;
/**
* @hibernate.property
*/
private String phone;
/**
* @hibernate.property
*/
private String description;
/**
* @hibernate.many-to-one
*/
private Organization org;
/**
* Person 1-----1 User
* @hibernate.one-to-one
* property-ref="person"
*/
private User user;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDuty() {
return duty;
}
public void setDuty(String duty) {
this.duty = duty;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Organization getOrg() {
return org;
}
public void setOrg(Organization org) {
this.org = org;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
在上面这个人员person.java类中,建立了相应的属性,以及指向了Organization.java(结构类),的方式,人员类和机构类是
多对一关系,建立了many-to-one的关联关系.
生成的person.hbm.xml文件如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="T_Person" name="com.bjsxt.oa.model.Person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sex"/>
<property name="address"/>
<property name="duty"/>
<property name="phone"/>
<property name="description"/>
<many-to-one name="org"/>
<one-to-one name="user" property-ref="person"/>
</class>
</hibernate-mapping>
下面建立机构类Organization.java
因为机构类,涉及到了,父机构和子机构的关系,所以在hibernate建立一个树结构采用了parent指向了父机构的方式.
还有考虑到时双向关联 建立set children属性.
package com.bjsxt.oa.model;
import java.util.Set;
/**
*
* @author Administrator
* @hibernate.class table="T_Organization"
*/
public class Organization {
/**
* @hibernate.id
* generator-class="native"
*/
private int id;
/**
* @hibernate.property
*/
private String name;
/**
* @hibernate.property
*/
private String sn;
/**
* @hibernate.property
*/
private String description;
/**
* @hibernate.many-to-one
* column="pid"
*/
private Organization parent;
/**
* @hibernate.set inverse="true" lazy="extra"
* @hibernate.key column="pid"
* @hibernate.one-to-many class="com.bjsxt.oa.model.Organization"
*/
private Set children;
public Set getChildren() {
return children;
}
public void setChildren(Set children) {
this.children = children;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Organization getParent() {
return parent;
}
public void setParent(Organization parent) {
this.parent = parent;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
}
这里请注意红色的部分,这是核心,因为有树形机构,对parent进行了映射,以及双向关联的映射,这是核心.
呵呵
生成的Organization.hxm.xml文件如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class table="T_Organization" name="com.bjsxt.oa.model.Organization">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sn"/>
<property name="description"/>
<many-to-one column="pid" name="parent"/>
<set lazy="false" inverse="true" name="children">
<key column="pid"/>
<one-to-many class="com.bjsxt.oa.model.Organization"/>
</set>
</class>
</hibernate-mapping>
注意红色的部分.
这就是我采用的职能型的设计方式.大家可以参考,呵呵!!
分享到:
相关推荐
PC间用ACL和TRP协议
基于西门子S7-1200PLC的立体车库创新设计:融入新能源汽车充电元素,简约而不简单的智能化方案,基于西门子S7-1200PLC的立体车库设计设计 针对古老传统的立体车库进行创新,引入当下流行的新能源汽车充电元素,简约而不简单 包含:程序,图纸,仿真 ,关键词:基于西门子S7-1200PLC; 立体车库设计; 创新; 新能源汽车充电元素; 简约设计; 程序; 图纸; 仿真。,基于新能源充电的西门子S7-1200PLC立体车库创新设计:程序、图纸与仿真,简约而不凡
陕西省国家级非物质文化遗产经纬度数据统计表 统计内容包含以下字段: 1. 项目名称 2. 遗产类别 3. 入选批次 4. 所属地区 5. 申报地区/单位 6. 保护单位 7. 地理经度 8. 地理纬度 该统计表系统记录了陕西省国家级非物质文化遗产的地理空间信息,为文化遗产的数字化保护与研究工作提供了重要的数据支撑。
GBT27023复习备考
vivado MIPS32五级流水CPU设计
基于MBD开发手册的《Application Modeling Guideline:辅助驾驶系统中的数学模型设计与应用》,Application Modeling Guideline 文档57页 基于MBD开发手册包含: 1. MBD概述:文档可能会介绍MBD的基本概念,解释为什么它在辅助驾驶系统开发中至关重要。 MBD允许工程师使用数学模型来描述系统行为,这有助于早期发现问题,减少硬件原型制作的需求。 2. 工具选择:在辅助驾驶开发中,常用的MBD工具有MATLAB Simulink、MathWorks的Simulink Design Verifier、Vector的CANoe等。 文档可能涵盖这些工具的特点和适用场景,帮助开发者选择合适的工具。 3. 模型设计:MBD的核心是模型设计,文档会详细说明如何创建和组织模型结构,包括输入 输出接口定义、状态机设计、算法实现等。 对于辅助驾驶系统,这可能涉及到视觉处理、传感器融合、路径规划、决策制定等多个模块。 4. 仿真与验证:MBD工具支持动态仿真,开发者可以运行模型以验证其功能。 文档会介绍如何设置仿真条件,进行时序分析,以及如
LabVIEW曲线处理与包络线判断功能:准确判断,附带Demo及完整源码,labview做的曲线处理,包络线判断功能,判断准确。 一个demo,有源码 ,Labview曲线处理; 包络线判断功能; 判断准确; 有源码Demo; 包络线功能Demo; 准确度。,LabVIEW曲线处理与包络线精准判断功能Demo源码分享
2021年06月Scratch三级实操
GBT27067复习备考
基于nRF905的实验室温湿度监测系统研究.pdf
2022年12月机器人六级理论
Unity Shader Graph 2D - 角色身上部件高亮Bloom效果
大四-校内实习第四天(五)
2020年09月机器人五级实操
springboot停车场管理系统,含有完整的源码和报告文档
基于MPC模型预测算法的轨迹跟踪控制研究:双仿真比较及侧偏角软约束的重要性分析,基于mpc模型预测轨迹跟踪控制,总共包含两套仿真,一套是不加入四轮侧偏角软约束,一套是加入四轮侧偏角的软约束控制,通过carsim与simulink联合仿真发现加入侧偏角软约束在进行轨迹跟踪时,能够通过控制四轮侧偏角的变化,较好的实现轨迹跟踪;而不加入侧偏角软约束的,发现车辆由于失去稳定性, 轨迹跟踪失败( 该仿真是学习mpc模型预测算法控制和基于车辆动力学轨迹跟踪控制非常好的学习资料)。 文件中参考文献和文件说明。 ,基于mpc模型预测轨迹跟踪控制; 四轮侧偏角软约束; 车辆稳定性; 轨迹跟踪失败; carsim与simulink联合仿真; mpc模型预测算法控制; 车辆动力学轨迹跟踪控制。,MPC模型预测轨迹跟踪控制:侧偏角软约束与车辆稳定性的联合仿真研究
基于扩展卡尔曼滤波算法的车辆多状态精确估计与仿真研究:融合位置、轨迹、速度及加速度的实时动态监测,基于扩展卡尔曼滤波EKF的车辆状态估计 估计的状态包括: 1. 车辆的横纵向位置 2.车辆行驶轨迹、横摆角、 3. 车速、加速度、横摆角速度 4. 相应的估计偏差。 内容附带:Simulink模型与MATLAB代马,以及参考文档。 ,基于扩展卡尔曼滤波; 车辆状态估计; 横纵向位置估计; 行驶轨迹估计; 横摆角估计; 车速估计; 加速度估计; 横摆角速度估计; 估计偏差; Simulink模型; MATLAB代码; 参考文档。,"基于扩展卡尔曼滤波的车辆多状态估计系统及其偏差分析:Simulink模型与MATLAB代码实现"
"基于V-REP与MATLAB联合仿真的小车项目:循迹、避障、走迷宫及路径规划的详细代码与文档说明匹配版",V-REP小车项目+匹配文档,基于V-REP与MATLAB联合仿真,小车能够完成循迹、避障、走迷宫和路径规划,提供详细代码和文档说明。 ,核心关键词:V-REP小车项目; 匹配文档; 联合仿真; 循迹; 避障; 走迷宫; 路径规划; 详细代码; 文档说明。,V-REP小车项目:循迹避障与路径规划联合仿真实现
2022年7月环境管理体系基础