从Groovy中的列表中删除空项的最佳方法是什么?
例如: [null, 30, null]
想要回归: [30]
Groovy中有没有办法获得两个Date对象之间的持续时间?我正在寻找的持续时间格式如下:2天,10小时,30分钟......
谢谢
那回归是必要的吗?让我们说它正处于行动的中间.
render(contentType:'text/json', text: ['success': true] as JSON)
return
Run Code Online (Sandbox Code Playgroud) 我一直在考虑在我的Grails域对象中实现EhCache,如下所示:
static mapping = {
cache true
}
Run Code Online (Sandbox Code Playgroud)
我不太熟悉这个缓存机制是如何工作的,并且想知道在确定哪些域对象可以从缓存中受益时,有什么好的经验法则.例如,很少被访问的对象...通常......?
谢谢!
通过使用Grail在服务中抛出RuntimeException时回滚的能力,我一直在将所有服务更新为事务性的.在大多数情况下,我这样做:
def domain = new Domain(field: field)
if (!domain.save()) {
throw new RuntimeException()
}
Run Code Online (Sandbox Code Playgroud)
无论如何,我想验证这确实会回滚事务......它让我思考在这一点上它是否已经被提交了.另外,如果没有,会设置flush:true更改吗?我不太熟悉Spring/Hibernate如何做到这一切:)
我有以下SQL,我在转换为HQL时遇到问题.NPE正在被抛出 - 我认为这与SUM函数有关.另外,我想对subselect别名进行排序 - 这可能吗?
SQL(subselect):
SELECT q.title, q.author_id,
(SELECT IFNULL(SUM(IF(vote_up=true,1,-1)), 0)
FROM vote WHERE question_id = q.id) AS votecount
FROM question q ORDER BY votecount DESC
Run Code Online (Sandbox Code Playgroud)
HQL(不工作)
SELECT q,
(SELECT COALESCE(SUM(IF(v.voteUp=true,1,-1)), 0)
FROM Vote v WHERE v.question = q) AS votecount
FROM Question AS q
LEFT JOIN q.author u
LEFT JOIN u.blockedUsers ub
WHERE q.dateCreated BETWEEN :week AND :now
AND u.id NOT IN (
SELECT ub.blocked FROM UserBlock AS ub WHERE ub.blocker = :loggedInUser
)
AND (u.blockedUsers IS EMPTY …Run Code Online (Sandbox Code Playgroud) 我正在尝试找出为Grails应用程序生成XML站点地图的最佳方法(如此处所述:http://www.sitemaps.org/).我不知道有任何现有的插件,所以我可能会建立一个.但是,我想首先得到社区的意见.除了支持标准控制器/操作之外,我认为支持内容驱动的应用程序也很好,例如,基于title属性可以生成URL.
你们怎么会这样做?你会考虑什么,你将如何实现它?
谢谢!
我开始在我的日志中看到"无法同步数据库状态与会话"异常,我很难再现它.有时它工作正常...我看到两个例外(它们发生在不同的时间):
错误JDBCExceptionReporter - 尝试获取锁定时发现死锁; 尝试重新启动事务错误PatchedDefaultFlushEventListener - 无法使用会话org.hibernate.exception.LockAcquisitionException同步数据库状态:无法更新:[com.myapp.School#1911]
和
错误PatchedDefaultFlushEventListener - 无法使用会话org.hibernate.StaleObjectStateException同步数据库状态:行被另一个事务更新或删除(或未保存的值映射不正确):[com.myapp.School#1905]
以下是抛出它们的方法:
def populateFriends(ArrayList<FriendView> friends, User user) {
friends.eachWithIndex { friendView, index ->
def friend = Friend.findByFriendId(friendView.id) ?: new Friend()
def schoolName = friendView.schoolName
def school = null
if (schoolName) {
school = School.findByName(schoolName) ?: new School(name: schoolName).save(flush:true)
}
if (school) {
// add to user's school list
user = User.get(user.id)
user.addToSchools(school)
user = user.merge(flush: true)
user.save(flush: true)
friend.school = school
}
friend.save(flush: true)
}
}
Run Code Online (Sandbox Code Playgroud)
我整天都在这里,我真的很感激任何帮助.
我目前正在使用User对象 - 每个对象都有许多Goal对象.目标对象不是用户特定的,即用户可以共享相同的目标.我试图设计一种方法来计算两个用户之间的"相似性百分比"...(即考虑他们共享多少目标以及他们不共享多少目标)有没有人有这种类型的经验情况?我正在使用Grails与Mysql,如果这是有帮助的.
谢谢
我有以下switch语句
switch (points) {
case 0: name = "new"; break;
case 1..14: badgeName = "bronze-coin"; break;
case 15..29: badgeName = "silver-coin"; break;
default: badgeName = "ruby";
}
Run Code Online (Sandbox Code Playgroud)
我想第一个案例(案例0)包含小于或等于0的点.我怎样才能在Groovy中执行此操作?