我的情况在这里描述:
eclipse在此持久性单元中定义的名为"ID_GENERATOR"的重复生成器
但是我的问题是不同的,所选答案并没有解决它:
" 有多个@SequenceGenerator 具有相同的名称是否有效,即使它用于此目的Hibernate:如何覆盖映射超类的属性? "
如果无效,还有替代方案吗?
非常感谢您的回答.
我厌倦了asType用try/catchblock 封装每个调用:
def b = ""
def c
try {
c = b as Integer
}
catch (NumberFormatException) {
c = null
}
println c
Run Code Online (Sandbox Code Playgroud)
相反,我想在我的代码中写下以下内容:
def b = ""
def c = b as Integer
Run Code Online (Sandbox Code Playgroud)
如果b格式不正确,那么我想null分配给c
那么如何为asType运营商重载此默认行为?
如果我为整个Grails应用程序执行此操作会有风险吗?或者是简单地创建我自己的方法(比如asTypeSafe)并调用它的最佳解决方案?Groovy/Grails有关于Groovy类型转换的一些配置调整吗?
编辑(对于对已实现的答案感兴趣的人)根据接受的答案,我将以下代码添加到我的bootstrap.groovy文件中,它完美地运行.
String.metaClass.asTypeSafe = {Class c ->
try {
delegate.asType(c)
}
catch (Exception) {
return null
}
}
Run Code Online (Sandbox Code Playgroud)
我将其称为如下:
def myNum = myStr.asTypeSafe(Integer)
Run Code Online (Sandbox Code Playgroud) 我在grails应用程序中使用的插件(Nimble 0.3)包括一些控制器和相关的操作.我想(稍微)改变一些动作行为,我想知道如何实现这一点.
我可以创建一个继承自我的插件控制器的子控制器并覆盖一些动作实现吗?
或者,我可以创建另一个与插件控制器同名但位于不同包中的Controller 吗?
实际上我真正需要理解的是:当有名称冲突时,Grails如何确定要调用哪个控制器操作?
model-view-controller grails inheritance grails-plugin grails-controller
我正在使用Nimble和Shiro作为我的安全框架,我刚刚遇到一个GORM错误.确实 :
User.createCriteria().list {
maxResults 10
}
Run Code Online (Sandbox Code Playgroud)
返回10个用户,User.list(max: 10) 返回9个用户!
经过进一步调查,我发现createCriteria 返回两次相同的用户(admin),因为admin有2个角色!(我不是在开玩笑).
似乎任何具有多于1个角色的用户将在createCriteria呼叫中返回两次并User.list返回max-1实例(即9个用户而不是10个用户)
我可以使用哪种解决方法来返回10个唯一身份用户?
这非常烦人,因为我无法正确使用分页.
我的域类是:
class UserBase {
String username
static belongsTo = [Role, Group]
static hasMany = [roles: Role, groups: Group]
static fetchMode = [roles: 'eager', groups: 'eager']
static mapping = {
roles cache: true,
cascade: 'none',
cache usage: 'read-write', include: 'all'
}
}
class User extends UserBase { …Run Code Online (Sandbox Code Playgroud) 我正在使用Grails构建一个社区网站,我想实现与stackoverflow.com完全相同的用户通知.例如,用户将在他返回网站时通过电子邮件或邮箱收到新事件("您有新评论","您最喜欢的一个已经改变了......")的通知.
我想这是一个常见的问题,我想听听你在Grails领域实现后端的建议是什么简单的解决方案.例如,Java Message Service是推荐的解决方案吗?
谢谢.
我试图实现这里建议的谷歌脚本的改进解决方案:Google电子表格:当单元格更改文本时更改行颜色的脚本; .
但是,在调试我的脚本后,发生了我的文档不再可访问的情况.似乎我的脚本是错误的,并阻止我的文档打开...结果是我无法禁用/编辑/删除相关的谷歌脚本,我被卡住了!
你有办法解决这个阻塞问题吗?
谢谢,
法比恩
更新:经过进一步调查,似乎问题的原因是由于事件触发器onOpen()调用的无限循环脚本.所以我的问题可以重新表述为:
如何阻止进入无限循环的Google App脚本?
我可以使用另一个脚本来杀死这个错误脚本的执行吗?
好吧,这似乎是一个简单的任务,但我没有设法让它运行.
我有一个groovy脚本,在提示符调用时在Windows Vista下正常运行:
> cd MY_GAILS_PROJECT_DIR
> groovy cp src/groovy scripts/myscript.groovy
Run Code Online (Sandbox Code Playgroud)
现在,我想通过我的维护服务类(从控制器调用)执行此脚本(并向其传递一些输入参数),如下所示,
class MaintenanceService {
def executeMyScript() {
"groovy cp src/groovy scripts/myscript.groovy".execute()
}
}
Run Code Online (Sandbox Code Playgroud)
它根本不起作用!我甚至没有设法让execute()方法识别任何命令(比如"cd .".execute())抛出异常:
Error 500: java.io.IOException: Cannot run program "cd": CreateProcess error=2, The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
1-如何从grails应用程序执行groovy脚本?
2-这里有哪些最佳做法?例如,我应该使用QuartzPlugin然后使用triggerNow方法来执行脚本吗?我应该使用Gant任务吗?如果是的话,该怎么办?
谢谢.
默认情况下,将URL映射到控制器操作或视图时,Grails区分大小写.
例如,www.mywebsite.com/book/list将工作但www.mywebsite.com/Book/list将返回404页面.
我该怎么做(欢迎使用代码片段)以使我的URL不区分大小写(例如www.mywebsite.com/Book/list是一个有效的URL)?
在来这里之前我一直在寻找答案并提出这个问题.我的问题非常简单:在使用JPA Entity Manager API时,我无法运行任何JUnit测试.看来我的测试没有读取persistence.xml文件.
当我打电话时new Configuration().configure().buildSessionFactory(),它就像一个魅力,但在调用时会抛出异常Persistence.createEntityManagerFactory("myapp"):
javax.persistence.PersistenceException:在com.myapp.Test01的javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)的javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)中没有名为myapp的EntityManager的持久性提供程序. setUpBeforeClass(Test01.java:22)
我的JavaSE项目具有以下结构:
myapp
++src/main/java
++com.myapp.model
++// My entity classes are here
++src/test/java
++com.myapp
++Test01.java
++src/main/resources
++hibernate.cfg.xml
++META-INF
++persistence.xml
Run Code Online (Sandbox Code Playgroud)
和persistence.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="2.0">
<persistence-unit name="myapp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"></property>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题吗?
非常感谢您的帮助.
我的Angular 1.5应用程序通过REST连接到Java/Tomcat/Spring后端服务器.
一个REST服务生成PDF并将其发送到客户端.它在DEsktop浏览器(至少是FF,Chrome)上工作正常但我无法在iOS(例如ipad)上看到PDF内容,无论我使用哪种浏览器(Chrome,Safari ..)
这是Angular代码:
$http.get("/displayPdf", {responseType: 'arraybuffer', params: {id: 1}}).
success(function(data) {
var blob = new Blob([data], {type 'application/pdf'});
var objectUrl = window.URL.createObjectURL(blob);
window.open(objectUrl);
}
);
Run Code Online (Sandbox Code Playgroud)
Spring/Jax-RS代码是:
@GET
@Path("displayPdf")
@Produces("application/pdf")
Response displayPdf(@QueryParam("id") Long id) {
byte[] bytes = service.generatePdf();
return javax.ws.rs.core.Response.ok().
entity(bytes).
header("Content-Type", "pdf").
header("Content-Disposition", "attachment; filename='test.pdf'").
build();
}
Run Code Online (Sandbox Code Playgroud)
我在这里完成了我的研究(例如AngularJS:在角应用程序中显示blob(.pdf))但找不到合适的解决方案.
所以,请问您应该怎么做才能将生成的PDF显示给我的iPad/iPhone最终用户?
非常感谢