All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xworker.dataObject.db.HibernateDataObject.xer.txt Maven / Gradle / Ivy

There is a newer version: 2.0.3
Show newest version
^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