- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试向我的 Administrator.java 类添加一些映射,当我单击登录按钮时,无论哪个用户正在登录或凭据是否正确,这些映射都会开始出现错误。在添加额外功能之前,一切正常。
堆栈跟踪:
[error] o.j.ConnectionLogger - java.sql.Connection.prepareStatement:
throws exception: org.h2.jdbc.JdbcSQLException: Ambiguous column name "ID"; SQL statement:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5, t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t1.id c11, t2.id c12 from user t0 left outer join stock_basket t1 on t1.administrator_email = t0.email left outer join basket t1 on t1.customer_email = t0.email left outer join credit_card t2 on t2.customer_email = t0.email where t0.email = ? and t0.password = ? [90059-191]
org.h2.jdbc.JdbcSQLException: Ambiguous column name "ID"; SQL statement:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5, t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t1.id c11, t2.id c12 from user t0 left outer join stock_basket t1 on t1.administrator_email = t0.email left outer join basket t1 on t1.customer_email = t0.email left outer join credit_card t2 on t2.customer_email = t0.email where t0.email = ? and t0.password = ? [90059-191]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:124)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:94)
at org.h2.expression.Alias.mapColumns(Alias.java:46)
at org.h2.command.dml.Select.mapColumns(Select.java:1228)
at org.h2.command.dml.Select.init(Select.java:827)
at org.h2.command.Parser.parseSelect(Parser.java:1693)
at org.h2.command.Parser.parsePrepared(Parser.java:443)
[error] application -
! @73gmcki3k - Internal server error, for (POST) [/login] ->
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[CompletionException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException]]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:280)
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:206)
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:98)
at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344)
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
Caused by: java.util.concurrent.CompletionException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)
at java.util.concurrent.CompletableFuture.uniApply(Unknown Source)
at java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source)
at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:21)
at scala.concurrent.java8.FuturesConvertersImpl$CF.apply(FutureConvertersImpl.scala:18)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
at scala.concurrent.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:63)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at play.data.Form.bind(Form.java:425)
at play.data.Form.bindFromRequest(Form.java:234)
at controllers.security.LoginCtrl.loginSubmit(LoginCtrl.java:35)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$4$$anonfun$apply$4.apply(Routes.scala:900)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$4$$anonfun$apply$4.apply(Routes.scala:900)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73)
at play.http.HttpRequestHandler$1.call(HttpRequestHandler.java:54)
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at play.data.Form.bind(Form.java:421)
at play.data.Form.bindFromRequest(Form.java:234)
at controllers.security.LoginCtrl.loginSubmit(LoginCtrl.java:35)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$4$$anonfun$apply$4.apply(Routes.scala:900)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$4$$anonfun$apply$4.apply(Routes.scala:900)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
Caused by: javax.persistence.PersistenceException: Query threw SQLException:Ambiguous column name "ID"; SQL statement:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5, t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t1.id c11, t2.id c12 from user t0 left outer join stock_basket t1 on t1.administrator_email = t0.email left outer join basket t1 on t1.customer_email = t0.email left outer join credit_card t2 on t2.customer_email = t0.email where t0.email = ? and t0.password = ? [90059-191]
Bind values:[null]
Query was:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5, t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t1.id c11, t2.id c12 from user t0 left outer join stock_basket t1 on t1.administrator_email = t0.email left outer join basket t1 on t1.customer_email = t0.email left outer join credit_card t2 on t2.customer_email = t0.email where t0.email = ? and t0.password = ?
at com.avaje.ebeaninternal.server.query.CQuery.createPersistenceException(CQuery.java:673)
at com.avaje.ebeaninternal.server.query.CQuery.createPersistenceException(CQuery.java:653)
at com.avaje.ebeaninternal.server.query.CQueryEngine.findMany(CQueryEngine.java:324)
at com.avaje.ebeaninternal.server.query.DefaultOrmQueryEngine.findMany(DefaultOrmQueryEngine.java:94)
at com.avaje.ebeaninternal.server.core.OrmQueryRequest.findList(OrmQueryRequest.java:347)
at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1388)
at com.avaje.ebeaninternal.server.core.DefaultServer.findUnique(DefaultServer.java:1138)
at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findUnique(DefaultOrmQuery.java:1104)
at com.avaje.ebeaninternal.server.expression.DefaultExpressionList.findUnique(DefaultExpressionList.java:352)
at models.users.User.authenticate(User.java:60)
Caused by: org.h2.jdbc.JdbcSQLException: Ambiguous column name "ID"; SQL statement:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5, t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t1.id c11, t2.id c12 from user t0 left outer join stock_basket t1 on t1.administrator_email = t0.email left outer join basket t1 on t1.customer_email = t0.email left outer join credit_card t2 on t2.customer_email = t0.email where t0.email = ? and t0.password = ? [90059-191]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.expression.ExpressionColumn.mapColumn(ExpressionColumn.java:124)
at org.h2.expression.ExpressionColumn.mapColumns(ExpressionColumn.java:94)
at org.h2.expression.Alias.mapColumns(Alias.java:46)
at org.h2.command.dml.Select.mapColumns(Select.java:1228)
at org.h2.command.dml.Select.init(Select.java:827)
at org.h2.command.Parser.parseSelect(Parser.java:1693)
at org.h2.command.Parser.parsePrepared(Parser.java:443)
用户类别:
package models.users;
import java.util.*;
import javax.persistence.*;
import play.data.format.*;
import play.data.validation.*;
import com.avaje.ebean.*;
//https://www.playframework.com/documentation/2.2.x/JavaGuide4
// Product entity managed by Ebean
@Entity
// specify mapped table name
@Table(name = "user")
// Map inherited classes to a single table
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
// Discriminator column used to define user type
@DiscriminatorColumn(name = "role")
// This user type is user
@DiscriminatorValue("user")
public class User extends Model {
//@Id
//@GeneratedValue(strategy = GenerationType.IDENTITY)
//public Long id;
@Constraints.Required
@Id
private String email;
@Column(insertable=false, updatable=false)
private String role;
@Constraints.Required
private String name;
@Constraints.Required
private String password;
// Default constructor
public User() {
}
// Constructor to initialise object
public User(String email, String role, String name, String password) {
this.email = email;
this.role = role;
this.name = name;
this.password = password;
}
//Generic query helper for entity User with unique id String
public static Finder<String,User> find = new Finder<String,User>(User.class);
// Static method to authenticate based on username and password
// Returns user object if found, otherwise NULL
public static User authenticate(String email, String password) {
// If found return the user object with matching username and password
return find.where().eq("email", email).eq("password", password).findUnique();
}
// Check if a user is logged in (by id - email address)
public static User getLoggedIn(String id) {
if (id == null) {
return null;
} else {
// Find user by id and return object
return find.byId(id);
}
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void setRole(String role) {
this.role = role;
}
public String getRole() {
return role;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
管理类:
package models.users;
import models.products.Category;
import models.products.Review;
import models.shopping.Basket;
import models.shopping.ShopOrder;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import models.stock.StockBasket;
import models.stock.StockOrder;
import play.data.validation.*;
@Entity
// This is a User of type admin
@DiscriminatorValue("admin")
// Administrator inherits from the User class
public class Administrator extends User {
@OneToOne(mappedBy = "administrator", cascade = CascadeType.ALL)
private StockBasket basket;
@OneToMany(mappedBy = "administrator", cascade = CascadeType.ALL)
private List<StockOrder> orders;
public Administrator() {
}
public Administrator(String email, String role, String name, String password)
{
super(email, role, name, password);
}
public StockBasket getBasket() {
return basket;
}
public void setBasket(StockBasket basket) {
this.basket = basket;
}
public List<StockOrder> getOrders() {
return orders;
}
public void setOrders(List<StockOrder> orders) {
this.orders = orders;
}
}
最佳答案
您在查询中为 stock_basket 和篮子指定了相同的别名 (t1)。
将一个别名更改为 t3,这应该可以工作:
select t0.role c0, t0.email c1, t0.role c2, t0.name c3, t0.password c4, t1.id c5,
t0.department c6, t0.street1 c7, t0.street2 c8, t0.town c9, t0.post_code c10, t3.id c11, t2.id c12
from user t0
left outer join stock_basket t1 on t1.administrator_email = t0.email
left outer join basket t3 on t3.customer_email = t0.email
left outer join credit_card t2 on t2.customer_email = t0.email
这是使用可以识别回表名称的别名而不是 t1、t2 等更容易的原因之一。
关于java - [CompletionException : java. lang.RuntimeException : java. lang.reflect.InitationTargetException],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43163615/
我真的很难弄明白这一点。当我查看 logcat 指向错误的位置时,它指向这一行: throw new RuntimeException(i); 在里面 public void onDetach() {
@Transactional (noRollbackFor=RuntimeException.class) public void methodA (Entity e){ service.met
我正在开发简历应用程序并遇到以下异常 在gradle文件上,我尝试了所有可能的解决方案,使缓存重启无效,并且干净的gradle不起作用 java.lang.RuntimeException:java.
我的项目在 Android Studio 3.0.1 上的 Whatchap 中,这是我的设计 gradle。build.gradle(应用程序) 应用插件:'com.android.applicat
// Top-level build file where you can add configuration options common to all sub-projects/modules.
您好,目前我正在开发包括解析服务器的项目,并且在将解析库添加到我的项目后,当我运行它时,它显示此错误,任务“:app:checkDebugDuplicateClasses”执行失败。 Exec
我找到了 another post显示我们如何创建我们自己的检查异常,它也返回不同于 500 的 HTTP 状态代码。但是,我需要它是一个 RuntimeException。然后,我找到了WebApp
我尝试在 7.40 系统上演示具有动态方法名称的 CALL METHOD 语句。我使用下面的测试代码,在第 27 行得到一个 ABAP 运行时错误。异常描述中的错误分析状态 ... 在类 LCL 中,
我的ViewModel类抛出了RunTimeException。它基本上不能创建ViewModel类的实例。这是堆栈跟踪: 2019-05-29 01:27:56.700 9698-9698/com.
我安装了Hive 0.9.0,运行它时出现错误: ./hive Logging initialized using configuration in jar:file:/usr/lib/hive-0.
当我尝试在 android 4.1.1(galaxy nexus)上运行 opencv(2.4.2) sample3时。我收到RuntimeException。 Logcat指向此处:(android
Java中除了RuntimeException之外还有其他可能发生的异常吗?谢谢。 最佳答案 是的,有三种种。 检查异常 编译器会让您知道何时可以抛出它们,很可能是由于环境中的故障。 如果程序可以
这个问题已经有答案了: Why runtime exception is unchecked exception? (5 个回答) 已关闭 7 年前。 我知道受检查的异常继承自 Exception并且
这里发生了什么? 为什么 IOException (RemoteException) 的检查子级会转换为 RuntimeException? 摘自here的片段 import java.rmi.Rem
源代码(osmand)没有错误 我使用了 eclipse 和 sdk 模拟器 2.2,从 googlecode checkout (osmand应用程序) 我的代码: public void onCr
我开始研究线程,我不明白为什么下面的简单代码不起作用。它正在抛出: RuntimeException: can't create handler inside thread that has not
我想为自己破例。但是当我抛出异常时,程序就关闭了。那么我怎样才能运行我的方法3次然后关闭程序呢? (我的程序在intArray之后关闭,但我想遍历dobleArray和charArray) 这是我的异
我有一个扩展 HttpServlet 的类包含以下两个方法。当客户端向 Tomcat 服务器上运行的 Web 应用程序发出请求时,http 请求将通过此类处理,但是如果 doSomething 方法抛
在很多地方,我都会遇到几个检查异常,例如 IOException、ParseException、JSONException 等。我必须做出两个选择 - 通过在方法签名末尾添加 throws 来引发相同
RuntimeExceptions 应该指示编程错误,我希望我的应用程序在我的可观察对象中的某些东西抛出 RuntimeException 时崩溃。 最好的方法是什么?现在我正在考虑这个解决方案(它是
我是一名优秀的程序员,十分优秀!