Witam,
Mam uprzejma prośbę o pomoc w poniższym :
wykonuje update na bd jak wyżej w (JSF 2.2 Wildlfy 12.0) na prostej tabeli, reprezentującej stan aktywacji użytkowników systemu :
mysql> select * from signatories_activation;
+----+-----------+
| id | activated |
+----+-----------+
| 1 | N |
| 2 | N |
| 3 | N |
| 4 | N |
| 5 | N |
| 6 | N |
| 7 | N |
+----+-----------+
7 rows in set (0.00 sec)
Zapisuje nowe dane do w.wym tabeli bez problemu -nie zwracane są wyjątki.
Kod bezpośredni metody w klasie wykonawczej jest następujący :
- gdzie :
- idField = "id" nazwa pola z encji klasy JPA
- fieldToUpdate = "activated" nazwa pola z encji klasy JPA
- actualId = wartość pola id typu long odczytana z metody pobierającej zawartość wiersza tabeli html wyświetlającej zestaw rekordów z bazy danych
- actualState = wartość pola "activated" typu String odczytana z metody pobierającej zawartość wiersza tabeli html wyświetlającej zestaw rekordów z
bazy danych - classString = nazwa klasy encji JPA /stringowa/
- em = referencja do EntityManager-a deklarowanego w klasie DAO
public void switchSignatoryStatus(String idField, String fieldToUpdate,long actualId, String actualState,String classString,EntityManager em)
{
String hql="update "+classString+" set "+fieldToUpdate+"=:newState where "+idField+"=:id";
logger.log(Level.INFO, "Update SQL wynosi :"+actualId+": "+actualState+" do select SQL = :"+hql);
Query query = em.createQuery(hql);
query.setParameter("newState", actualState);
query.setParameter("id", actualId);
try {
query.executeUpdate();
logger.log(Level.INFO, "Zmieniono status dla rekordu o id = "+actualId+" na :"+actualState);
}
catch(Exception e)
{
logger.log(Level.INFO, "Nie można wykonać update :"+e);
e.printStackTrace();
}
}
Niestety próba updatu konczy sie wyjątkiem jak niżej :
wydaje się , że sam select MYSQL jest w porządku, więc czegoś z pewnością musi brakować = coś muszę robić nie tak jak trzeba:
2018-08-03 2322,069 INFO [stdout] (default task-3) Hibernate: /* select generatedAlias0 from UserActivation as generatedAlias0 */ select useractiva0_.id as id1_1_, useractiva0_.activated as activate2_1_ from signatories_activation useractiva0_
2018-08-03 2322,080 INFO [stdout] (default task-3) Hibernate: /* select generatedAlias0 from Student as generatedAlias0 */ select student0_.id as id1_0_, student0_.apartment_number as apartmen2_0_, student0_.city as city3_0_, student0_.county as county4_0_, student0_.identity_card as identity5_0_, student0_.email as email6_0_, student0_.first_name as first_na7_0_, student0_.gender as gender8_0_, student0_.house_number as house_nu9_0_, student0_.iban_account as iban_ac10_0_, student0_.last_name as last_na11_0_, student0_.login as login12_0_, student0_.password as passwor13_0_, student0_.personal_id as persona14_0_, student0_.phone as phone15_0_, student0_.zip_code as zip_cod16_0_, student0_.prefix as prefix17_0_, student0_.signatories_activation_id as signato18_0_, student0_.street as street19_0_, student0_.voivodeship as voivode20_0_ from signatories student0_
2018-08-03 2323,469 INFO [org.primefaces.showcase.view.data.datatable.SignEditView] (default task-5) Wartość klikniętego rekordu wynosi :2 : N
2018-08-03 2323,469 INFO [org.primefaces.showcase.view.data.datatable.SignEditView] (default task-5) Update SQL wynosi N do
select SQL = :update UserActivation set activated=:newState where id=:id
2018-08-03 2323,469 INFO [org.primefaces.showcase.view.data.datatable.SignEditView] (default task-5) Nie można wykonać update :javax.persistence.TransactionRequiredException: Executing an update/delete query
2018-08-03 2323,469 ERROR [stderr] (default task-5) javax.persistence.TransactionRequiredException: Executing an update/delete query
i poniżej :
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.hibernate.jpa.spi.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:54)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.as.jpa.container.QueryNonTxInvocationDetacher.executeUpdate(QueryNonTxInvocationDetacher.java:80)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.primefaces.showcase.view.data.datatable.SignEditView.switchSignatoryStatus(SignEditView.java:184)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.primefaces.showcase.view.data.datatable.SignEditView.onRowSelect(SignEditView.java:148)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at java.lang.reflect.Method.invoke(Method.java:498)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:181)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:80)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:64)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.primefaces.event.AbstractAjaxBehaviorEvent.processListener(AbstractAjaxBehaviorEvent.java:38)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:805)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.UIData.broadcast(UIData.java:1086)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.UIData.broadcast(UIData.java:1108)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:67)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:360)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
2018-08-03 2330,570 ERROR [stderr] (default task-5) at java.lang.Thread.run(Thread.java:748)
Z góry dzięki za czas poświęcony.....