我按照教程介绍Play框架,但它给了我一个错误:
执行异常VerifyError发生:期望方法控制器中的堆栈映射帧.安全$ Security.authentify(Ljava/lang/String; Ljava/lang/String;)Z偏移量为33
我不确定我做错了什么.我正在使用的代码(片段):
package controllers;
..
@With(Secure.class)
public class Application extends Controller
{
@Before
public static void setConnectedUser()
{
if (Security.isConnected())
{
User user = User.find("byEmail", Security.connected()).first();
user.password = null;
renderArgs.put("user", user);
}
}
...
Run Code Online (Sandbox Code Playgroud)
对于Security类:
package controllers;
import models.*;
public class Security extends Secure.Security {
static boolean authenticate(String username, String password) {
return User.connect(username, password) != null;
}
}
Run Code Online (Sandbox Code Playgroud)
我还将安全模块添加到dependencies.yml,它在重新启动Play框架后正确加载.我将安全模型添加到了我的路线中.Eclipse没有错误; 错误仅在执行时发生.Secure.Security类确实具有可用的公共静态isConnected方法.我正在使用最新版本的Play框架(1.2.2).
如何将模型中的枚举绑定到路径定义中的静态参数?
示例(组成):
模型:
class User (..)
{
public static enum TYPES { Default, Admin, Editor, Visitor }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
class Users (..)
{
public static void create(long parentUserId, User.TYPES type)
{
(..)
}
}
Run Code Online (Sandbox Code Playgroud)
路线:
GET /user/{parentUserId}/create/editor Users.create(type:User.TYPES.Editor)
Run Code Online (Sandbox Code Playgroud)
查看模板:
<a href="@{Users.create(user.id, 'Editor')}">create editor</a>
Run Code Online (Sandbox Code Playgroud)
要么
<a href="@{Users.create(user.id, User.TYPES.Editor)}">create editor</a>
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.我该如何设置?
我正在使用JPA从现有的ERP系统中提取数据.我正在为某些数据使用(现有)连接表.问题是我还应该匹配不在连接表上的列,而是匹配源表本身.
T1 (source)
- F1*
- F2
- F3
- ..
T2 (join)
- F4
- F5
T3 (source)
- F6*
- F7
- F8
- ..
Run Code Online (Sandbox Code Playgroud)
我当前的连接表条件是这样的:
@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name="T2", schema=Util.schema, joinColumns = {
@JoinColumn(name="F4", referencedColumnName="F2", unique=false),
@JoinColumn(name="F5", referencedColumnName="F3", unique=false)
},
inverseJoinColumns = {
@JoinColumn(name="F4", referencedColumnName="F7", unique=false),
@JoinColumn(name="F5", referencedColumnName="F8", unique=false)
}
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我如何/在哪里添加条件T1.F1 = T3.F6?