我需要在我的grails web app中为文章实现修订系统.在搜索grails论坛,stackoverflow,grails插件和谷歌搜索互联网后,我最终得到了3个选项:
选项1 - 使用grails Envers插件(请参阅http://code.google.com/p/grails-envers-plugin/).有没有人成功使用它?或者在没有插件的情况下使用Envers(请参阅此处),但如何使其与GORM一起使用?
选项2 - 使用Gvers插件我在这里找到:https://github.com/ziftytodd/gvers.我从来没有听过有人使用它,所以有没有人曾经成功使用它?
选项3 - 内置机制.Weceem为Weceem CMS的任何内容创建了版本控制系统.我可以从代码的逻辑和这个伟大的应用程序的设计中汲取灵感,但它似乎有点矫枉过正,我不喜欢使用非标准的解决方案.
所以我的问题是,你建议我做什么?你有没有使用过这些选项?
非常感谢您的见解.
获取HTTP状态代码500时,我想根据运行环境显示2个不同的页面.
在发展模式,我想显示stackStrace页(如默认Grails的500错误页面),并在生产模式,我想显示一个正式的"内部错误"页面.
有可能,我该怎么做?
目前,为了检查Hibernate二级缓存是否用于数据库查询,我检查我的SQL日志(通过datasource.groovy中的p6spy或logSql = true)来查看Grais/Hibernate是否触发了SQL查询.我假设如果未记录查询,则可能意味着使用了缓存.
对于简单的信息来说这很复杂,不是吗?
那么您是否知道获取和记录信息的简单方法:"使用缓存与触发数据库查询"?
编辑:遵循Pascal建议,我已将此添加trace 'org.hibernate.cache'到我的log4j配置中.
我试图使用maven插件增强来自另一个Jar的Entity类openjpa-maven-plugin,不幸的是我没有找到正确的方法来实现它.
我在jar中打包的MyPojo模块有一个类:MyDomainmy-domain.jar
public class MyPojo {
private Long id;
...
}
Run Code Online (Sandbox Code Playgroud)
在我的第二个项目MyJpa打包中my-jpa.jar,它取决于模块my-domain.jar,Maven配置为使用Build Time OpenJPA Enhancer,具体如下:
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<configuration>
<includes>**/entity/*.class</includes>
<addDefaultConstructor>true</addDefaultConstructor>
<enforcePropertyRestrictions>true</enforcePropertyRestrictions>
</configuration>
<executions>
<execution>
<id>enhancer</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我正在使用orm.xml在persistence.xml以下位置声明的XML映射:
...
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<mapping-file>META-INF/orm.xml</mapping-file>
...
Run Code Online (Sandbox Code Playgroud)
并使用类似于的orm.xml:
<entity class="MyPojo" access="FIELD">
<table name="MYPOJO"/>
<attributes>
<id name="id">
<generated-value strategy="AUTO"/>
</id>
</attributes>
</entity>
Run Code Online (Sandbox Code Playgroud)
运行mvn install会出现以下错误:
此配置不允许运行时优化,但在构建时或使用javaagent在类加载时未增强以下列出的类型: …
应该很简单,但我无法弄明白.
在IntelliJ中运行我的单元测试时,我找不到告诉IntelliJ-9.0它应该使用JUnit4而不是JUnit3的方法.
测试失败时,IntelliJ控制台显示:
MyTests.testConstraints(MyTests.groovy:20)at
...
com.intellij.在com.intellij的junit3.JUnit3IdeaTestRunner .doRun(JUnit3IdeaTestRunner.java:108).junit3.JUnit3IdeaTestRunner .startRunnerWithArgs(JUnit3IdeaTestRunner.java:42)...
你知道如何用JUnit4替换JUnit3吗?
我确信熟悉HQL的人(我自己是新手)可以轻松回答这个问题.
在我的Grails应用程序中,我有以下域类.
class Book {
org.joda.time.DateTime releaseDate //I use the PersistentDateTime for persisting via Hibernate (that use a DATETIME type for MySQL DB)
}
Run Code Online (Sandbox Code Playgroud)
在我的HQL查询中,我想要检索其发布日期包含在范围内的书籍date1.date2
比如我试过:
DateTime date1, date2
...
def queryStr = "select * from Book as b where b.releaseDate > $date1 and b.releaseDate < $date2"
def res = Book.executeQuery(queryStr)
Run Code Online (Sandbox Code Playgroud)
但我得到了异常...caused by: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token:
错误令牌指向日期格式(例如2009-11-27T21:57:18.010+01:00或Fri Nov 27 22:01:20 CET 2009)
我还尝试将date1转换为Date类,但没有成功
那么正确的HQL代码是什么?我应该使用patternForStyle方法转换为特定格式(哪一个?),还是有另一种方法可以做到这一点?
谢谢,
法比安.
这是我第一次推出一个网站(在Amazon EC2平台和Cloud Foundry下使用Grails web框架),我很快意识到我还没有准备好在生产模式下正确监控和维护我的应用程序(幸运的是网站是可访问的)对于非常有限的用户).
到目前为止我遇到的问题是:
所以,我的问题很简单:
您可以推荐我使用哪些工具(包括Grails插件)和方法让我从目前的失明中解脱出来?
grails amazon-ec2 production-environment grails-plugin cloud-foundry
似乎在Grails 中有两种不同的方式来声明已排序的关联:
方法1(请参阅此处)使用默认排序顺序
class Book {
String title
}
class Author {
static hasMany = [books : Book]
static mapping = { books sort: "title"}
}
Run Code Online (Sandbox Code Playgroud)
方法2(见这里)使用SortedSet
class Book implements Comparable {
String title
int compareTo(obj) {
title <=> obj.title
}
}
class Author {
SortedSet books
static hasMany = [books : Book]
}
Run Code Online (Sandbox Code Playgroud)
我不确定使用哪一个,有什么区别(如果有的话),使用一个与另一个之间的利弊.
我将不胜感激任何澄清.
谢谢
我正在构建一个grails的社区网站(使用Apache Shiro进行安全和身份验证系统),我想实现"谁在线?"这一功能.
这个URL http://cksource.com/forums/viewonline.php(如果您没有访问此Url,请参阅下面的快照)给出了我想要实现的示例.
我怎么能以最简单的方式做到这一点?Grails或Java中是否存在任何现有解决方案?
谢谢.
快照:Who的快照在线页面http://www.freeimagehosting.net/uploads/th.2de8468a86.png或在此处查看:http://www.freeimagehosting.net/image.php?2de8468a86.png