即使是文本编辑器也很少见用记事本来写的,效率不高
推荐高效的方法,用UltraEdit,File/文件-->Convert/转换 这里你想怎么转都可以
挺好的,提个建议
unIncludeRegexString
可以改为
excludeRegexString
为什么id和salary丢失了?
--抱歉,这里遗漏了
DefaultActionSupport是旧的版本,QueryWebUtils.java是tiger中重构过的版本,解析的方法是一致的,最新的以tiger版本为准
notParameters.keySet(); 这里是bug,谢谢指正,马上修正
这里的用法仅是为了允许jsp的参数带有简单逻辑组合,可以自动处理为service可识别的参数类型
根据MSN的交流,上面的情况是没有正确引用关联表属性,这也是hibernate使用者容易犯的错误。
举个hsql的例子,假设child:parent关系多对一,id是主键
select from Child child where child.parent.id = 1 正确
select from Child child where child.parent.name = 'name' 错误
select from Child child left join child.parent p where p.name = 'name' 正确
多(child)这边本来就记录了一(parent)的主键,parent的时候id是可以取得的,而hibernate多对一默认关联使用代理Proxy,这个parent的代理就是先拿到id作代理准备的,parent.id就取到了,但是parent的其它属性就需要显式连接才可以取到。
同理,相应的bba96的代码就是
parent.id 正确
parent.name 错误
parent:p.name 正确
bba96使用LGPL发布,跟hibernate一样的。
可以的
我会给findByHQL加上names, values的参数,就可以调用了,但是这样的调用受hibernate的一些限制,参考
http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#sp_query
确实想不受限制,也可直接使用session.connection()获得jdbc connection来调用
CVS上的CoreEntityManager有public Object getCurrentSession()的方法,类型转化为ore.hibenate.Session即可,缺省此方法不在EntityManager中提供。
谢谢你的关注,请多提意见
这是我在Blogjava看到最好看的页面风格,呵呵
re: 做这一行的人是这样的?! 李李 2006-03-03 15:06
有趣,支持
这个是一定要发给MM看滴
内部就是调用hibernate的projections.setProperty,hibernate支持什么结构就是什么结构
谢谢评价,提到的缺陷在cvs上已经有部分修正了。主要是action层的一些修正,例如web参数安全。支持多个分页在考虑中,关于service安全更请具体一些,service是设计为允许extend的,另,目前将会基于aop加入权限控制。最近忙于一个项目的升级,这方面时间用少了很多啊
现在cvs上的也是比较稳定的,暂时没有发现bug。几个项目从1.0开始都在用
pojo的package下。
classname-conversion.properties
给你补充一点,-conversion.properties设定不局限于webwork action,支持任意pojo,意味着可以支持无限层次的Collection自动赋值,如:
root.one[0].two[0].three[0]
root.one[0].two[0].three[1]
...
root.one[n].two[n].three[n]
CVS上已加入前台传入的参数校验以及额外增加参数的功能,都可以通过配置properties文件实现,增加了安全性及灵活性
不太明白,页面显示有什么问题?Set一样可以iterator
上面有写,MSN: hotmail的帐号scorpio_leon
用CVS上的吧,现在release的只支持Long的主键,CVS上的去掉了这个限制
有问题可以加我的MSN或者到这里讨论
http://forum.bba96.com/forum.jspa?forumID=29&start=0
还将加入权限控制的模块,由于一直在赶项目,还来不及把权限发布,因为还有一些需要调整的代码。
find(Cat.class, new String[]{"name", "kittens:kitten.name"}, new String[]{"like", "like"}, new Object[]{"F%", "F%"})
这是action/service的写法,若你用webwork,框架中支持直接从jsp解析参数,就比较方便了。
冒号后表示别名,还可以继续进行关联查询如 kittens:kitten.propeties:property.name,没有层次的限制。
The operator can only be set 'is' or '=' or 'is not' or '!=' when value is NULL!"
这个异常就是告诉你现在的值是null,对应的操作符只能是=, !=, is, is not。
因为查询的字段有可能是对象,null是有意义,所以要忽略view传过来的参数,应该由Action这层处理,缺省的页面传递过来,有参数名的值,没填的时候就是空,因此在我的webwork action中对空串作了忽略处理,同时还已经作了string到一般对象的转换,你的jsp中可以这样写endTime_Date。以下这一段通过自动处理都能省掉,你可以参考一下,用struts也能实现。
String startTime = (String) tradeInfoForm.get("startTime");
String endTime = (String) tradeInfoForm.get("endTime");
String tradeType = (String) tradeInfoForm.get("tradeType");
String terminalId = (String) tradeInfoForm.get("terminalId");
Date startTime2 = null;
Date endTime2 = null;
try {
if (startTime != null && startTime.trim().length() > 0) {
startTime2 = DateUtil.StringToDate(startTime);
}
if (endTime != null && endTime.trim().length() > 0) {
endTime2 = DateUtil.StringToDate(endTime);
}
} catch (ParseException e) {
e.printStackTrace();
}
String[] names = new String[] { startTime, endTime, tradeType,
terminalId };
String[] operators = new String[] { QueryParam.OPERATOR_GT,
QueryParam.OPERATOR_LT, QueryParam.OPERATOR_EQ,
QueryParam.OPERATOR_EQ };
Object[] values = new Object[] { startTime2, endTime2, tradeType,
terminalId };
host:cvs.dev.java.net
repository path:/cvs
user:guest
password:(空)
然后
check out bba96
DefaultActionSupport一部分是简化webwork持久化操作,另一部分就是解析jsp或者properties传递的参数,后面这部分是类似的,直接就可以用。我的框架已经应用在我以及其他用户开发的很多工程中,你可以放心采用,建议取cvs上最新的。
这个很容易实现,只要有关联,bba96在动态产生查询语句方面比较强大的,特别是方便的别名无限关联,以及复杂的逻辑关系组合。具体看QueryObject,QueryParam。
不过暂时还没有struts整合的代码,而且以后struts ti将以webwork为核心,所以我也不打算为现有的struts做整合了,所谓不能整合只是不方便jsp调用,但是action层是直接支持的,不须特别整合。
HQL应该跟Critiera+Projections比较,虽然我没有仔细比较过,不过没感觉HQL强大多少?我看Critiera+Projections都能实现嘛,或者你举个例子让我看看。 MSN: hotmail的帐号scorpio_leon
除非Critiera支持,目前不能,需要对象间有关联,因为内部还是Critiera得query方法。
re: 申请加入“架构师之家” 李李 2005-12-13 23:40
呵呵,关注,支持
算了,还是用return String作为通知手段吧。