play.exceptions.JavaExecutionException: идентификатор для загрузки требуется для загрузки - PullRequest
3 голосов
/ 12 февраля 2012

Я получаю сообщение об ошибке в «User.findById (user_id)» не часто, но иногда я не знаю почему.В чем причина этой ошибки?

Примечание. Я использую версию Play 1.2.3

Спасибо.

Функция, которая создает исключение;

public static void getMemberProfile(Long user _id){
       User sessionUser = getUser();
        User user = User.findById(user_id);

Сообщение об ошибке ;

2012-02-12T13:06:42+00:00 app[web.1]: 
2012-02-12T13:06:42+00:00 app[web.1]: Execution exception (In /app/controllers/UserApi.java around line 470)
2012-02-12T13:06:42+00:00 app[web.1]: IllegalArgumentException occured : id to load is required for loading
2012-02-12T13:06:42+00:00 app[web.1]: 
2012-02-12T13:06:42+00:00 app[web.1]: play.exceptions.JavaExecutionException: id to load is required for loading
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invoke(ActionInvoker.java:229)
2012-02-12T13:06:42+00:00 app[web.1]:   at Invocation.HTTP Request(Play!)
2012-02-12T13:06:42+00:00 app[web.1]: Caused by: java.lang.IllegalArgumentException: id to load is required for loading
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:89)
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:61)
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1002)
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.impl.SessionImpl.get(SessionImpl.java:998)
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:614)
2012-02-12T13:06:42+00:00 app[web.1]:   at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:589)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.db.jpa.JPQL.findById(JPQL.java:34)
2012-02-12T13:06:42+00:00 app[web.1]:   at models.User.findById(User.java)
2012-02-12T13:06:42+00:00 app[web.1]:   at controllers.UserApi.getMemberProfile(UserApi.java:470)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)
2012-02-12T13:06:42+00:00 app[web.1]:   at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)

Ответы [ 2 ]

8 голосов
/ 12 февраля 2012

Вы получаете это исключение, потому что вы передаете нуль user_id методу.

Это легко найти по

  • чтению сообщения об ошибке
  • чтениюисходный код org.hibernate.event.LoadEvent
3 голосов
/ 19 октября 2012

Почему бы вам не проверить файл маршрутов

Я тоже новичок, но я узнал об этом от своего старшего

---------------
# Import CRUD routes
*      /admin              module:crud
---------------

должно быть выше

# Catch all
*       /{controller}/{action}                  {controller}.{action}

Если поставить это под это, оно не сработает

1011 * в ближайшее время *

# Catch all
*       /{controller}/{action}                  {controller}.{action}

ДОЛЖЕН быть последней строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...