
xworker.dataObject.db.HibernateDataObject.xer.txt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xworker_dataobject Show documentation
Show all versions of xworker_dataobject Show documentation
DataObject is a data mapping model.
^1364549629822
@xworker.dataObject.db.HibernateDataObject
sname
HibernateDataObject
slabel
HibernateDataObject
sdescriptors
xworker.lang.MetaDescriptor3
sextends
xworker.dataObject.DataObject
smany
true
seditCols
2
sinitialization
false
smodifier
public
sinheritDescription
false
Sdescription
#$@text#$@
使用Hibernate存储数据的数据对象。
数据对象的名称为Hibernate的实体名称。
#$@text#$@
sid
HibernateDataObject
@xworker.dataObject.db.HibernateDataObject/@actions
sname
actions
sid
actions
slabel
actions
sdescriptors
xworker.lang.MetaDescriptor3/@actions
@xworker.dataObject.db.HibernateDataObject/@actions/@create
sname
doCreate
slabel
doCreate
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.utils.DbUtil;
import xworker.util.UtilHibernate;
import ognl.Ognl;
//是否需要自动初始化
if(self.getBoolean("autoInit")){
theData.doAction(self.autoInitAction, actionContext);
}
if(self.cls != null && self.cls != ""){
//如果是持久化类
def cls = Class.forName(cls);
def obj = cls.newInstance();
//赋值
for(attr in self.get("attribute@")){
if(attr.getBoolean("dataField")){
def v = Ognl.getValue(attr.name, theData);
if(v != null){
Ognl.setValue(attr.name, obj, v);
}
}
}
id = session.save(obj);
def keyDatas = theData.getKeyAndDatas();
theData.put(keyDatas[0][0].name, id);
return theData;
}else{
//dynamic-map
log.info(self.name);
def id = UtilHibernate.save(session, (String) self.name, theData);
def keyDatas = theData.getKeyAndDatas();
theData.put(keyDatas[0][0].name, id);
return theData;
}
#$@text#$@
sinitBreakPoint
false
ssuccessBreakPoint
false
sexceptionBreakPoint
false
seditBreakPoint
false
sinterpretationType
Action
ssaveReturn
false
sid
create
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@create/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@create/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@update
sname
doUpdate
slabel
doUpdate
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.utils.DbUtil;
import xworker.util.UtilHibernate;
import ognl.Ognl;
def obj = theData.get("_hibernateObj");
if(obj == null){
//先装载
//键值
def keyDatas = theData.getKeyAndDatas();
if(keyDatas == null || keyDatas.length == 0){
log.warn("no keys data cannot update, dataObjectPath=" + theData.getMetadata().getDescriptor().metadata.path);
return null;
}
//只支持一个主键
if(self.cls != null && self.cls != ""){
def cls = Class.forName(self.cls);
obj = session.load(cls, keyDatas[0][1]);
}else{
obj = UtilHibernate.load(session, (String) self.name, keyDatas[0][1]);
}
theData.setData("_hibernateObj", obj);
}
if(obj != null){
//赋值
for(attr in self.get("attribute@")){
if(attr.getBoolean("dataField")){
def v = Ognl.getValue(attr.name, theData);
//log.info(attr.name + "=" + v);
if(v != null){
Ognl.setValue(attr.name, obj, v);
}
}
}
//log.info("update");
if(self.cls != null && self.cls != ""){
session.update(obj);
}else{
UtilHibernate.update(session, self.name, obj);
}
session.flush();
return obj;
}else{
return null;
}
#$@text#$@
sinitBreakPoint
false
ssuccessBreakPoint
false
sexceptionBreakPoint
false
seditBreakPoint
false
sinterpretationType
Action
ssaveReturn
false
sid
update
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@update/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@update/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch
sname
updateBatch
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.utils.DbUtil;
//键值
def keyDatas = theData.getKeyAndDatas();
if(keyDatas == null || keyDatas.length == 0){
log.warn("no keys data cannot update, dataObjectPath=" + theData.getMetadata().getDescriptor().metadata.path);
return 0;
}
//生成insert sql语句
def sql = "update " + self.name + " set ";
def dirtyFields = theData.getMetadata().getDirtyFields();
if(dirtyFields == null || dirtyFields.length == 0){
return 0;
}
for(int i=0; i批量更新,根据查询条件查找并更新符合条件的记录。
sid
updateBatch
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@ins
sisValidate
false
sname
ins
sid
ins
slabel
ins
sdescriptors
xworker.lang.actions.Inout/@ins
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@ins/@theData
sname
theData
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sid
theData
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@ins/@conditionConfig
sname
conditionConfig
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sid
conditionConfig
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@ins/@conditionData
sname
conditionData
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sid
conditionData
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@updateBatch/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@delete
sname
doDelete
slabel
doDelete
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.utils.DbUtil;
import xworker.util.UtilHibernate;
import ognl.Ognl;
def obj = theData.get("_hibernateObj");
if(obj == null){
//先装载
//键值
def keyDatas = theData.getKeyAndDatas();
if(keyDatas == null || keyDatas.length == 0){
log.warn("no keys data cannot update, dataObjectPath=" + theData.getMetadata().getDescriptor().metadata.path);
return null;
}
//只支持一个主键
if(self.cls != null && self.cls != ""){
def cls = Class.forName(self.cls);
obj = session.load(cls, keyDatas[0][1]);
}else{
obj = session.load((String) self.name, keyDatas[0][1]);
}
theData.setData("_hibernateObj", obj);
}
if(obj != null){
if(self.cls != null && self.cls != ""){
session.delete(obj);
}else{
UtilHibernate.delete(session, self.name, obj);
}
return obj;
}else{
return null;
}
#$@text#$@
sinitBreakPoint
false
ssuccessBreakPoint
false
sexceptionBreakPoint
false
seditBreakPoint
false
sinterpretationType
Action
ssaveReturn
false
sid
delete
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@delete/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@delete/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch
sname
deleteBatch
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.utils.DbUtil;
import xworker.dataObject.DataObject;
def theData = actionContext.get("theData");
if(theData == null){
theData = new DataObject(self);
}
//生成insert sql语句
def sql = "delete " + self.name;
def datas = actionContext.get("conditionData");
if(datas == null){
datas = [:];
}
//log.info("" + datas);
def conditionConfig = actionContext.get("conditionConfig");
if(conditionConfig == null){
conditionConfig = [:];
}
def cds = [];
def clause = DbUtil.getConditionSql(conditionConfig, actionContext, datas, cds);
//log.info("clause=" + clause);
if(clause != null && clause != ""){
sql = sql + " where " + clause;
}
if(self.getBoolean("showSql")){
log.info(sql);
}
def theData = new DataObject(self);
//设置参数值
def query = session.createQuery(sql);
try{
def index = 0;
for(int i=0; i批量删除,根据查询条件查找并删除符合条件的记录。
sid
deleteBatch
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch/@ins
sisValidate
false
sname
ins
sid
ins
slabel
ins
sdescriptors
xworker.lang.actions.Inout/@ins
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch/@ins/@conditionConfig
sname
conditionConfig
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sid
conditionConfig
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch/@ins/@conditionData
sname
conditionData
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sid
conditionData
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@deleteBatch/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@load
sname
doLoad
slabel
doLoad
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.DataObject;
import xworker.dataObject.DataObjectList;
import xworker.dataObject.utils.DbUtil;
import ognl.Ognl;
def keyDatas = theData.getKeyAndDatas();
if(keyDatas == null || keyDatas.length == 0){
log.warn("no keys data cannot update, dataObjectPath=" + theData.getMetadata().getDescriptor().metadata.path);
return null;
}
//只支持一个主键
if(self.cls != null && self.cls != ""){
def cls = Class.forName(self.cls);
obj = session.load(cls, keyDatas[0][1]);
}else{
obj = session.load((String) self.name, keyDatas[0][1]);
}
for(attr in self.get("attribute@")){
if(attr.getBoolean("dataField")){
def v = Ognl.getValue(attr.name, obj);
Ognl.setValue(attr.name, theData, v);
}
}
theData.setData("_hibernateObj", obj);
return theData;
#$@text#$@
sinitBreakPoint
false
ssuccessBreakPoint
false
sexceptionBreakPoint
false
seditBreakPoint
false
sinterpretationType
Action
ssaveReturn
false
sid
load
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@load/@contexts
sname
contexts
sid
contexts
slabel
contexts
sdescriptors
xworker.lang.actions.Inout/@contexts
@xworker.dataObject.db.HibernateDataObject/@actions/@load/@contexts/@session
sname
session
sconfigName
self.hibernateCfg
sisNeedTransaction
true
sconflicting
ignore
sdisable
false
sonError
ignore
spreventError
false
sinherit
true
sid
session
slabel
session
sdescriptors
xworker.lang.context.Contexts/@HibernateContext
@xworker.dataObject.db.HibernateDataObject/@actions/@query
sname
doQuery
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import xworker.dataObject.DataObject;
import xworker.dataObject.DataObjectList;
import xworker.dataObject.utils.DbUtil;
import ognl.Ognl;
//生成查询sql语句
def theData = actionContext.get("theData");
if(theData == null){
theData = new DataObject(self);
}
def datas = actionContext.get("conditionData");
if(datas == null){
datas = [:];
}
//log.info("" + datas);
def conditionConfig = actionContext.get("conditionConfig");
if(conditionConfig == null){
conditionConfig = [:];
}
//log.info("" + conditionConfig);
def pageInfo = actionContext.get("pageInfo");
def countSql = "";
def shouldCount = false;
if(pageInfo != null && pageInfo.limit != 0){
shouldCount = true;
}
def attributes = theData.getMetadata().getAttributes();
def sql = "";
def tableName = self.name;
sql = sql + " from " + tableName;
countSql = "select count(*) from " + tableName;
def cds = [];
def clause = DbUtil.getConditionSql(conditionConfig, actionContext, datas, cds);
//log.info("clause=" + clause);
if(clause != null && clause != ""){
sql = sql + " where " + clause;
countSql = countSql + " where " + clause;
}
if(self.getBoolean("showSql")){
log.info(sql);
}
if(pageInfo != null && pageInfo.sort != null && pageInfo.sort != "" && pageInfo.sort != "_extend"){
sql = sql + " order by " + pageInfo.sort;
if(pageInfo.dir != null && pageInfo.dir != ""){
sql = sql + " " + pageInfo.dir;
}
//log.info(pageInfo.dir);
}else{
def storeSortField = theData.getMetadata().descriptor.getString("storeSortField");
if(storeSortField != null && storeSortField != "" && storeSortField != "_extend"){
sql = sql + " order by " + storeSortField + " " + descriptor.getString("storeSortDir");
}
}
//查询记录总数
if(shouldCount){
def query = session.createQuery(countSql);
def index = 0;
for(int i=0; i查询参数
sid
datas
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@query/@ins/@condition
sname
condition
stypeCheck
false
soptional
true
scheck
false
scheckLevel
exception
sdescription
查询条件定义
sid
condition
sdescriptors
xworker.lang.actions.Inout/@ins/@param
@xworker.dataObject.db.HibernateDataObject/@actions/@generateId
sname
generateSeqId
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
def driverName = con.getMetaData().getDriverName();
if(driverName != null && driverName.indexOf("Oracle") != -1){
//oracle数据库
def sql = "select " + self.sequenceName + ".nextval as nextID from dual";
def pst = con.prepareStatement(sql);
def rs = null;
try{
rs = pst.executeQuery();
if(rs.next()){
return rs.getInt("nextID");
}else{
throw new Exception("cannot get seq from " + self.sequenceName);
}
}finally{
if(rs != null){
rs.close();
}
if(pst != null){
pst.close();
}
}
}else{
log.warn("database driver " + driverName + " not supported sequence");
throw new Exception("database driver " + driverName + " not supported sequence");
}
#$@text#$@
sid
generateId
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@menu_reverse
sname
menu_reverse
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import java.sql.Types;
def shell = event.widget.display.activeShell;
def self = currentThing;
def dataSource = world.getThing(self.dataSource);
if(dataSource == null){
def box = new MessageBox(shell, SWT.NONE);
box.setText("操作信息");
box.setMessage("数据源不存在!");
box.open();
return;
}
if(self.tableName == null || self.tableName == ""){
def box = new MessageBox(shell, SWT.NONE);
box.setText("操作信息");
box.setMessage("没有设置表名!");
box.open();
return;
}
def columnMThing = world.getThing("xworker.db.jdbc.metadata.Columns");
def columns = columnMThing.doAction("query", actionContext, ["dataSource":dataSource, "tableNamePattern": self.tableName.toUpperCase()]);
for(column in columns){
switch(column.dataType){
case Types.ARRAY_LOCATOR:
break;
case Types.BIGINT:
break;
case Types.BINARY:
break;
case Types.BIT:
break;
case Types.BLOB_LOCATOR:
break;
case Types.CHAR:
break;
case Types.CLOB_LOCATOR:
break;
case Types.DATE:
break;
case Types.DECIMAL:
break;
case Types.DISTINCT:
break;
case Types.DOUBLE:
break;
case Types.FLOAT:
break;
case Types.INTEGER:
break;
case Types.JAVA_OBJECT:
break;
case Types.LONGVARBINARY:
break;
case Types.LONGVARCHAR:
break;
case Types.NULL:
break;
case Types.NUMERIC:
break;
case Types.OTHER:
break;
case Types.REAL:
break;
case Types.REF:
break;
case Types.SMALLINT:
break;
case Types.STRUCT:
break;
case Types.STRUCT_LOCATOR:
break;
case Types.TIME:
break;
case Types.TIMESTAMP:
break;
case Types.TINYINT:
break;
case Types.VARBINARY:
break;
case Types.VARCHAR:
break;
}
println column.columnName;
}
#$@text#$@
sid
menu_reverse
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@actions/@toHibernate
sname
toHibernate
sisSynchronized
false
sthrowException
true
suseOtherAction
false
svarScope
Global
sdisableGlobalContext
false
Scode
#$@text#$@
import org.xmeta.Thing;
//Category
def thing = new Thing("xworker.db.hibernate.hibernate-mapping");
//Class-entity
def cls = new Thing("xworker.db.hibernate.hibernate-mapping/@class");
if(self.cls != null && self.cls != ""){
cls.set("name", self.name);
}else{
cls.set("entity-name", self.name);
}
cls.set("table", self.tableName);
//id
for(attr in self.get("attribute@")){
if(attr.getBoolean("key")){
def id = new Thing("xworker.db.hibernate.hibernate-mapping-nodes.class/@id");
id.set("name", attr.name);
id.set("column", attr.fieldName);
id.set("type", attr.type);
id.set("length", attr.length);
cls.addChild(id);
}
}
//attribute
for(attr in self.get("attribute@")){
if(!attr.getBoolean("key")){
def property = new Thing("xworker.db.hibernate.hibernate-mapping-nodes.class/@property");
property.set("name", attr.name);
property.set("column", attr.fieldName);
property.set("type", attr.type);
property.set("length", attr.length);
cls.addChild(property);
}
}
thing.addChild(cls);
return thing;
#$@text#$@
sid
toHibernate
sdescriptors
xworker.lang.actions.Actions/@GroovyAction
@xworker.dataObject.db.HibernateDataObject/@tblName
sname
tblName
slabel
表名
sinheritDescription
false
LvalidateOnBlur
false
LallowDecimals
false
LallowNegative
false
sid
tblName
sdescriptors
xworker.lang.MetaDescriptor3/@attribute
@xworker.dataObject.db.HibernateDataObject/@hibernateCfg
sname
hibernateCfg
slabel
Hibernate配置
sinheritDescription
false
sdescription
Hibernate配置的名称。
LvalidateOnBlur
false
LallowDecimals
false
LallowNegative
false
sid
hibernateCfg
sdescriptors
xworker.lang.MetaDescriptor3/@attribute
@xworker.dataObject.db.HibernateDataObject/@cls
sname
cls
slabel
类名
ssize
60
scolspan
2
sinheritDescription
false
Sdescription
#$@text#$@
持久化类的全名,当创建数据对象时需要,目前只支持没有参数的默认构造器的类。
如果是dynamic-map此项为空。
#$@text#$@
LvalidateOnBlur
false
LallowDecimals
false
LallowNegative
false
sid
cls
sdescriptors
xworker.lang.MetaDescriptor3/@attribute
@xworker.dataObject.db.HibernateDataObject/@attribute
sname
attribute
slabel
属性
sdescriptors
xworker.lang.MetaDescriptor3/@thing
sextends
xworker.dataObject.Attribute
sid
attribute
@xworker.dataObject.db.HibernateDataObject/@attribute/@fieldName
sname
fieldName
slabel
字段名
sgroup
DB
sdescription
对应数据库中的字段名,如果没有那么数据库的字段名默认为属性名。
LvalidateOnBlur
false
LallowDecimals
false
LallowNegative
false
sid
fieldName
sdescriptors
xworker.lang.MetaDescriptor3/@attribute
@xworker.dataObject.db.HibernateDataObject/@thing
sname
thing
slabel
事物
sdescriptors
xworker.lang.MetaDescriptor3/@thing
sextends
xworker.dataObject.RelationDataObject
sid
thing
@xworker.dataObject.db.HibernateDataObject/@actions1
sname
actions
slabel
Actions
sdescriptors
xworker.lang.MetaDescriptor2/@thing
sextends
xworker.lang.actions.Actions
sid
actions1
@xworker.dataObject.db.HibernateDataObject/@actions1/@name
sname
name
sid
name
sdescriptors
xworker.lang.MetaDescriptor2/@attribute
@xworker.dataObject.db.HibernateDataObject/@sswtMenus
sname
sswtMenus
sid
sswtMenus
slabel
sswtMenus
sdescriptors
xworker.lang.MetaDescriptor3/@swtMenus
@xworker.dataObject.db.HibernateDataObject/@sswtMenus/@menuDefine
sname
menuDefine
sid
menuDefine
slabel
menuDefine
sdescriptors
xworker.lang.MetaDescriptor3/@swtMenus/@menuDefine
@xworker.dataObject.db.HibernateDataObject/@sswtMenus/@menuDefine/@DbDataObject
sname
DataObject
slabel
DataObject
sid
DbDataObject
sdescriptors
xworker.lang.ThingMenu/@menuDefine/@menu
@xworker.dataObject.db.HibernateDataObject/@sswtMenus/@menuSetting
sname
menuSetting
stype
data
smenuType
DataObject
sid
menuSetting
slabel
menuSetting
sdescriptors
xworker.lang.MetaDescriptor3/@swtMenus/@menuSetting
@xworker.dataObject.db.HibernateDataObject/@sswtMenus/@menuSetting/@editData
sname
editData
slabel
编辑数据
surl
xworker.dataObject.DataObject/@actions/@menu_editData
sisSplit
false
sattachParam
true
sid
editData
sdescriptors
xworker.lang.ThingMenu/@menuSetting/@menu
© 2015 - 2025 Weber Informatics LLC | Privacy Policy