I am trying to map my native SQL result to my POJO, but it's returning an error.
Here is the full stack trace:
Hibernate: SELECT * FROM members_tb where memberName like ?
2019-12-19 07:40:20.688 TRACE 32472 --- [nio-8084-exec-2] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [VARCHAR] - [%Frank%]
java.lang.IllegalArgumentException: Could not locate appropriate constructor on class : com.app.ecclesiamainframe.entity.Members
at org.hibernate.loader.custom.ConstructorResultColumnProcessor.resolveConstructor(ConstructorResultColumnProcessor.java:92)
at org.hibernate.loader.custom.ConstructorResultColumnProcessor.performDiscovery(ConstructorResultColumnProcessor.java:45)
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:494)
at org.hibernate.loader.Loader.processResultSet(Loader.java:2338)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2294)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012)
at org.hibernate.loader.Loader.doQuery(Loader.java:953)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
at org.hibernate.loader.Loader.doList(Loader.java:2815)
at org.hibernate.loader.Loader.doList(Loader.java:2797)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2629)
at org.hibernate.loader.Loader.list(Loader.java:2624)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2123)
at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1134)
at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:173)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526)
at org.hibernate.query.Query.getResultList(Query.java:165)
at com.app.ecclesiamainframe.service.impl.MembersServiceImpl.findByMembername(MembersServiceImpl.java:63)
at com.app.ecclesiamainframe.service.impl.MembersServiceImpl$$FastClassBySpringCGLIB$$b6791a90.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
at com.app.ecclesiamainframe.service.impl.MembersServiceImpl$$EnhancerBySpringCGLIB$$81c0914a.findByMembername(<generated>)
at com.app.ecclesiamainframe.controller.MembersController.getMember(MembersController.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
2019-12-19 07:40:21.744 INFO 32472 --- [nio-8084-exec-2] i.StatisticalLoggingSessionEventListener : Session Metrics {
1250700 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
0 nanoseconds spent preparing 0 JDBC statements;
0 nanoseconds spent executing 0 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
}
2019-12-19 08:39:48.231 WARN 32472 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=45s935ms542µs800ns).
2019-12-19 08:46:56.149 WARN 32472 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=3m17s562ms942µs).
2019-12-19 08:46:57.264 WARN 32472 --- [l-2 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-2 - Thread starvation or clock leap detected (housekeeper delta=3m17s563ms485µs800ns).
Here is my Membermapping.xml:
<sql-result-set-mapping name="MemberMappingXml">
<constructor-result target-class="com.app.ecclesiamainframe.entity.Members">
<column name="memberId" />
<column name="dcaRegno" />
<column name="address" />
<column name="age" />
<column name="areaId" />
<column name="birthday" />
<column name="cellId" />
<column name="dca" />
<column name="department" />
<column name="editor" />
<column name="firstTime" />
<column name="gender" />
<column name="maritalStatus" />
<column name="memberEmail" />
<column name="memberHomePhoneNum" />
<column name="memberMobileNum" />
<column name="memberName" />
<column name="note" />
<column name="secondTime" />
</constructor-result>
</sql-result-set-mapping>
Here is my Entity Class:
/**
*
*/
package com.app.ecclesiamainframe.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.ColumnResult;
import javax.persistence.ConstructorResult;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.Table;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import lombok.Data;
/**
* #author Harry
*
*/
#Entity
#Table(name="members_tb")
#Data
#TypeDef(
name = "json",
typeClass = JsonStringType.class
)
#SqlResultSetMapping(
name = "MemberMapping",
classes = #ConstructorResult(
targetClass = Members.class,
columns = {
#ColumnResult(name = "memberId", type = Long.class),
#ColumnResult(name = "dcaRegno", type = Long.class),
#ColumnResult(name = "address"),
#ColumnResult(name = "age"),
#ColumnResult(name = "areaId", type = Long.class),
#ColumnResult(name = "birthday"),
#ColumnResult(name = "cellId", type = Long.class),
#ColumnResult(name = "dca"),
#ColumnResult(name = "department"),
#ColumnResult(name = "editor"),
#ColumnResult(name = "firstTime"),
#ColumnResult(name = "gender"),
#ColumnResult(name = "maritalStatus"),
#ColumnResult(name = "memberEmail"),
#ColumnResult(name = "memberHomePhoneNum", type = Long.class),
#ColumnResult(name = "memberMobileNum", type = Long.class),
#ColumnResult(name = "memberName"),
#ColumnResult(name = "note"),
#ColumnResult(name = "secondTime")
}))
public class Members implements Serializable {
/**
*
*/
public Members() {}
private static final long serialVersionUID = 1L;
#Id
#Column(name="memberId")
#GeneratedValue(strategy = GenerationType.AUTO)
private Long memberId;
#Column(name="dcaRegno")
private Long dcaRegno;
#Column(name="memberName")
private String memberName;
#Column(name="memberMobileNum")
private Long memberMobileNum;
#Column(name="memberHomePhoneNum")
private Long memberHomePhoneNum;
#Column(name="memberEmail")
private String memberEmail;
#Column(name="gender")
private String gender;
#Column(name="department")
private String department;
#Type(type = "json")
#Column(columnDefinition = "json",name="address")
private String address;
#Column(name="cellId")
private Long cellId;
#Column(name="areaId")
private Long areaId;
#Column(name="maritalStatus")
private String maritalStatus;
#Column(name="age")
private String age;
#Column(name="birthday")
private String birthday;
#Column(name="firstTime")
private String firstTime;
#Column(name="secondTime")
private String secondTime;
#Type(type = "json")
#Column(columnDefinition = "json",name="dca")
private String dca;
#Column(name="note")
private String note;
#Column(name="editor")
private String editor;
public Members(Long memberId,String memberName) {
this.memberId = memberId;
this.memberName = memberName;
}
public Members(Long memberId,Long dcaRegno,String memberName,Long memberMobileNum,Long memberHomePhoneNum,String memberEmail,String gender,String department,
String address,Long cellId,Long areaId,String maritalStatus,String age,String birthday,String firstTime,String secondTime,
String dca,String note,String editor) {
this.memberId = memberId;
this.dcaRegno = dcaRegno;
this.address = address;
this.age = age;
this.areaId = areaId;
this.birthday = birthday;
this.cellId = cellId;
this.dca = dca;
this.department = department;
this.editor = editor;
this.firstTime = firstTime;
this.gender = gender;
this.maritalStatus = maritalStatus;
this.memberEmail = memberEmail;
this.memberHomePhoneNum = memberHomePhoneNum;
this.memberMobileNum = memberMobileNum;
this.memberName = memberName;
this.note = note;
this.secondTime = secondTime;
}
}
Here is my Member Service Implementation:
#Transactional
#SuppressWarnings("unchecked")
public List<Members> findByMembername(String memberName)
{
//return membersDao.findByMemberName(memberName);
List<Members> members = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
// Native query selecting all columns
Query query = session.createNativeQuery("SELECT * FROM members_tb where memberName like :memberName","MemberMapping")
.setParameter("memberName","%"+memberName+"%"); //named parameter binding
members = query.getResultList();
transaction.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
}
// HibernateUtil.shutdown();
return members;
}
Please how do i do away with the error and design an appropriate constructor ???
Possibly if i don't have to load every column into the constructor although i want all columns mapped in the result.
You will have to create a constructor for this.
Create a constructor in the class in which you have used SqlResultsetMapping and keep the variables in the constructor in the same sequence as you have kept them in the SqlResultsetMapping
The listed columns are not in the same order as the constructor parameters.
Parameters Columns
========================= ==================
Long memberId memberId
Long dcaRegno dcaRegno
String memberName address
Long memberMobileNum age
Long memberHomePhoneNum areaId
String memberEmail birthday
String gender cellId
String department dca
String address department
Long cellId editor
Long areaId firstTime
String maritalStatus gender
String age maritalStatus
String birthday memberEmail
String firstTime memberHomePhoneNum
String secondTime memberMobileNum
String dca memberName
String note note
String editor secondTime
please create this constructor in pojo class.As i can see mismatch between constructor
Members(Long memberId,Long dcaRegno,String address,String age,Long areaId,String birthday,Long cellId,String dca,String department,String editor,String firstTime,String gender,String maritalStatus,String memberEmail,Long memberHomePhoneNum,Long memberMobileNum,String memberName,String note,String secondTime)
hope this will work for you
Related
How to resolve "could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement"?
I have got such this error while running my app. I share my code snippet related service and repository. When I change the reportStatus of comment and post, I get contrasted results of success and failure.
The configured yaml file is below.
jpa:
open-in-view: false
database: MYSQL
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
properties:
hibernate:
use-new-id-generator-mappings: false
enable_lazy_load_no_trans: true
format_sql: true
use_sql_comments: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
# dialect: org.hibernate.spatial.dialect.mysql.MySQL5SpatialDialect
default_batch_fetch_size: 100
search:
autoregister_listeners: false
indexing_strategy: manual
default:
indexmanager: elasticsearch #5.6.16
elasticsearch:
host: http://localhost:9200
index_schema_management_strategy: update #update
#username: user
#password: password
log:
json_pretty_printing: true
required_index_status: yellow
dynamic_mapping: true
update_all_types: true
// RestAdminReportController //
#JsonView(Views.WebAdminJsonView.class)
#PostMapping(path = "/{id}/changeStatus")
public ResponseEntity<Map<String, Object>> changeStatus(#PathVariable long id, #RequestParam ReportStatus reportStatus, #RequestParam long reportId) {
Map<String, Object> map = new HashMap<>();
User loginUser = authUtils.getCurrentUser();
log.info("ReportID : {}, PostingID : {}, ChangeStatus : {}", reportId, id, reportStatus);
ReportPosting report = adminReportPostingService.findById(reportId);
adminReportPostingService.updateAll(report.getRelation().getPosting(), reportStatus);
boolean isBlind = reportStatus.equals(ReportStatus.BLOCK);
postingService.blindPosting(id, loginUser, isBlind);
map.put("resultCode", "1000");
map.put("data", "");
return new ResponseEntity<>(map, HttpStatus.OK);
}
#JsonView(Views.WebAdminJsonView.class)
#PostMapping(path = "/{id}/changeCommentStatus")
public ResponseEntity<Map<String, Object>> changeCommentStatus(#PathVariable long id, #RequestParam ReportStatus reportStatus, #RequestParam long reportId) {
Map<String, Object> map = new HashMap<>();
User loginUser = authUtils.getCurrentUser();
log.info("ReportID : {}, CommentID : {}, ChangeStatus : {}", reportId, id, reportStatus);
ReportComment report = adminReportCommentService.findById(reportId);
adminReportCommentService.updateAll(report.getRelation().getComment(), reportStatus);
boolean isBlind = reportStatus.equals(ReportStatus.BLOCK);
postingService.blindComment(id, loginUser, isBlind);
map.put("resultCode", "1000");
map.put("data", "");
return new ResponseEntity<>(map, HttpStatus.OK);
}
// ReportCommentRepository //
public interface ReportCommentRepository extends JpaRepository<ReportComment, Long> {
...
#Modifying
#Query("update ReportComment rc set rc.reportStatus = :status where rc.relation.comment.id = :#{#comment.id}")
int updateAll(#Param("comment")Comment comment, #Param("status") ReportStatus status);
}
// ReportPostingRepository //
public interface ReportPostingRepository extends JpaRepository<ReportPosting, Long> {
...
#Modifying
#Query("update ReportPosting rc set rc.reportStatus = :status where rc.relation.posting.id = :#{#posting.id}")
int updateAll(#Param("posting") Posting posting, #Param("status") ReportStatus status);
}
// Posting Model //
#Data
#EqualsAndHashCode(callSuper = false)
#Entity
#DiscriminatorColumn(columnDefinition = "char(2)", discriminatorType = DiscriminatorType.STRING)
#DiscriminatorValue("PO")
#Inheritance(strategy = InheritanceType.SINGLE_TABLE)
#NoArgsConstructor
#AllArgsConstructor
#ToString()
#Where(clause = "is_delete = false")
#DynamicUpdate
#AnalyzerDef(name = "text_analyzer",
tokenizer = #TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
#TokenFilterDef(factory = StandardFilterFactory.class),
#TokenFilterDef(factory = LowerCaseFilterFactory.class),
#TokenFilterDef(factory = StopFilterFactory.class),
}
)
#Table(indexes = {#Index(name = "IDX_TYPE", columnList = "dtype")})
public abstract class Posting extends BaseEntity implements INotification, WithCondition, IActivity, IYoutube, IPhotoAlbum {
...
}
// Comment Model //
#Data
//#Indexed(index = ElasticsearchConfig.INDEX_NAME)
#Entity
#DynamicUpdate
#NoArgsConstructor
#AllArgsConstructor
#Builder
#EqualsAndHashCode(callSuper = false, of = {"id"})
#ToString
#Table(indexes = {#javax.persistence.Index(name = "IDX_POSTING", columnList = "posting_id")})
#JsonIgnoreProperties({"hibernateLazwyInitializer"})
#AnalyzerDef(name = "comment",
tokenizer = #TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
#TokenFilterDef(factory = StandardFilterFactory.class),
#TokenFilterDef(factory = LowerCaseFilterFactory.class),
#TokenFilterDef(factory = StopFilterFactory.class),
}
)
#AnalyzerDef(name = "comment_remove_nickname_analyzer", charFilters =
{
#CharFilterDef(factory = PatternReplaceCharFilterFactory.class, params =
{
#Parameter(name = "pattern", value = "(\\[.*\\])"),
#Parameter(name = "replacement", value = "")
})
}, tokenizer = #TokenizerDef(factory = StandardTokenizerFactory.class), filters =
{
#TokenFilterDef(factory = StandardFilterFactory.class), #TokenFilterDef(factory = LowerCaseFilterFactory.class),
})
public class Comment extends BaseEntity implements INotification, IActivity {
...
}
After run the below function, I got the comment item updated successfully.
adminReportCommentService.updateAll(report.getRelation().getComment(), reportStatus);
On the contrary, there is another function but similar in logic. And after this function run, got a failure like below.
adminReportPostingService.updateAll(report.getRelation().getPosting(), reportStatus);
[Admin][2022-08-10 00:55:22][TRACE][BasicBinder.java][bind(64)] : binding parameter [1] as [INTEGER] - [2]
[Admin][2022-08-10 00:55:22][TRACE][BasicBinder.java][bind(64)] : binding parameter [2] as [BIGINT] - [2003441]
[Admin][2022-08-10 00:55:22][WARN ][SqlExceptionHelper.java][logExceptions(137)] : SQL Error: 1064, SQLState: 42000
[Admin][2022-08-10 00:55:22][ERROR][SqlExceptionHelper.java][logExceptions(142)] : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set report_status=2 where id=2003441' at line 1
[Admin][2022-08-10 00:55:22][INFO ][ProxyLeakTask.java][cancel(91)] : Previously reported leaked connection com.mysql.cj.jdbc.ConnectionImpl#20d18bbc on thread http-nio-8081-exec-6 was returned to the pool (unleaked)
[Admin][2022-08-10 00:55:22][ERROR][CommonExceptionHandler.java][paramViolationError(99)] : paramViolationError
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at jdk.proxy2/jdk.proxy2.$Proxy233.updateAll(Unknown Source)
at net.infobank.moyamo.service.AdminReportPostingService.updateAll(AdminReportPostingService.java:44)
at net.infobank.moyamo.service.AdminReportPostingService$$FastClassBySpringCGLIB$$636acc8e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
at net.infobank.moyamo.service.AdminReportPostingService$$EnhancerBySpringCGLIB$$d8cddc1f.updateAll(<generated>)
at net.infobank.moyamo.controller.RestAdminReportController.changeStatus(RestAdminReportController.java:85)
at net.infobank.moyamo.controller.RestAdminReportController$$FastClassBySpringCGLIB$$b2100f08.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
at net.infobank.moyamo.aop.AdminRestAspect.restApiControllerAdviceAround(AdminRestAspect.java:36)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)
at net.infobank.moyamo.controller.RestAdminReportController$$EnhancerBySpringCGLIB$$593eb73f.changeStatus(<generated>)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:178)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:97)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:200)
at org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute(BasicExecutor.java:80)
at org.hibernate.hql.internal.ast.exec.BasicExecutor.execute(BasicExecutor.java:50)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:458)
at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:377)
at org.hibernate.internal.SessionImpl.executeUpdate(SessionImpl.java:1438)
at org.hibernate.query.internal.AbstractProducedQuery.doExecuteUpdate(AbstractProducedQuery.java:1701)
at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1683)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$ModifyingExecution.doExecute(JpaQueryExecution.java:239)
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)
at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:152)
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:131)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
... 133 common frames omitted
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set report_status=2 where id=2003441' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1347)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197)
... 156 common frames omitted
There are several types of models extended Posting model, such as Boast, Clinic, Free, Guide, Magazine, etc.
I thought this errors turn on because Posting model is abstract class whereas Comment model is not abstract class.
Am I right?
I need your help.
You need not to use alias for the table.
public interface ReportCommentRepository extends JpaRepository<ReportComment, Long> {
#Modifying
#Query("update ReportComment set reportStatus = :status where relation.comment.id = :#{#comment.id}")
int updateAll(#Param("comment")Comment comment, #Param("status") ReportStatus status); }
I added updateReportStatus function, since the "updateAll" function changes updates only report status.
#Transactional
public int updateAll(Posting posting, ReportStatus status) {
return reportPostingRepository.updateAll(posting, status);
}
#Transactional
public int updateReportStatus(ReportPosting report, ReportStatus status) {
return reportPostingRepository.updateReportStatus(report, status);
}
#Modifying
#Query("update ReportPosting rp set rp.reportStatus = :status where rp.id = :#{#report.id}")
int updateReportStatus(#Param("report") ReportPosting report, #Param("status") ReportStatus status);
ReportPosting report = adminReportPostingService.findById(reportId);
// adminReportPostingService.updateAll(report.getRelation().getPosting(), reportStatus); // By this line, getting error.
adminReportPostingService.updateReportStatus(report, reportStatus);
Finally, I could get reportPosting item updated by reportStatus.
For me to solve this problem. I found that I did not create a default constructor of Entity POJO class. I solved it by creating default constructor(NoArgsConstructor).
I have one table and other child table connected with oneToMany relation. I want to get data from primary
table and secondary table on the basis of secondary table excluding other fields from primary table. I am trying to get data using JPA query with constructor to set fields in Bean and getting exception in console.
1.Entity Table:
#Entity
#Getter #Setter
#Accessors(chain = true)
#NoArgsConstructor
#JsonIgnoreProperties(ignoreUnknown = true)
#Table(name="entity")
#JsonInclude(value = Include.NON_NULL)
#JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="entityId")
public class EntityModel implements Serializable {
private static final long serialVersionUID = 8087473285130713445L;
#Id
#GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer entityId;
#Column(length = 100, nullable = false)
private String legalName;
//other fields
//.....
//....
#OneToMany(fetch=FetchType.LAZY,mappedBy = "entity")
private Set<EntityRoles> entityRoles;
public EntityModel(Integer entityId,String legalName,Set<EntityRoles> entityRoles){
this.entityId = entityId;
this.legalName = legalName;
this.entityRoles = entityRoles;
}
}
2.Entity Role Table:
#Getter #Setter
#Accessors(chain = true)
#Entity
#NoArgsConstructor
#AllArgsConstructor
#Table(name = "entity_roles")
#JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="entityRolesId")
public class EntityRoles implements Serializable {
private static final long serialVersionUID = 4335089064220416028L;
#Id
#GeneratedValue(strategy = GenerationType.AUTO)
private Integer entityRolesId;
#Column(length = 10, nullable = false)
private String roleName;
#ManyToOne
#JoinColumn(name = "entity_id", nullable = false)
private EntityModel entity;
public EntityRoles(Integer entityRolesId, String roleName) {
super();
this.entityRolesId = entityRolesId;
this.roleName = roleName;
}
}
3.Repository:
#Repository
public interface EntityRepo extends JpaRepository<EntityModel, Integer>{
#Query(value = "SELECT new EntityModel(e.entityId,e.legalName,e.entityRoles) FROM EntityModel AS e INNER JOIN e.entityRoles er WHERE er.roleName NOT IN('FINANCIER','HOST','BUYER')")
Page<EntityModel> findAllByAnchorSellerAndDealerEntity(Pageable page);
}
Exception (StackTrace):
org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:281)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:149)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy153.findAllByAnchorSellerAndDealerEntity(Unknown Source)
at com.entpaynet.service.EntityService.getEntityByTypeWithPage(EntityService.java:253)
at com.entpaynet.service.EntityService$$FastClassBySpringCGLIB$$879e027e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
at com.entpaynet.service.EntityService$$EnhancerBySpringCGLIB$$ad961a7f.getEntityByTypeWithPage(<generated>)
at com.entpaynet.controller.EntityController.getEntityByPage(EntityController.java:215)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:67)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2292)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2050)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2012)
at org.hibernate.loader.Loader.doQuery(Loader.java:953)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
at org.hibernate.loader.Loader.doList(Loader.java:2815)
at org.hibernate.loader.Loader.doList(Loader.java:2797)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2629)
at org.hibernate.loader.Loader.list(Loader.java:2624)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1396)
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1558)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526)
at org.hibernate.query.Query.getResultList(Query.java:165)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$PagedExecution.doExecute(JpaQueryExecution.java:177)
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:618)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:80)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
... 67 common frames omitted
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. as col_14_0_ from entity entitymode0_ inner join entity_roles entityrole1_ on ' at line 1
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
... 96 common frames omitted
Getting Exception due to following column :
#OneToMany(fetch=FetchType.LAZY,mappedBy = "entity")
private Set<EntityRoles> entityRoles;
How to get data in this case?
You are using new operator. This is for creating DTOs not querying entities. Your quers should look like:
#Query("SELECT e FROM EntityModel e INNER JOIN e.entityRoles er " +
"WHERE er.roleName NOT IN('FINANCIER','HOST','BUYER')")
Page<EntityModel> findAllByAnchorSellerAndDealerEntity(Pageable page);
}
Or if you want a DTO you have to create one that you have to use with the fully qualified classname
#Query("SELECT NEW packagename.EntityDTO(e.entityId,e.legalName,e.entityRoles) "+
"FROM EntityModel e INNER JOIN e.entityRoles er " +
"WHERE er.roleName NOT IN('FINANCIER','HOST','BUYER')")
Page<EntityDTO> findAllByAnchorSellerAndDealerEntity(Pageable page);
}
I created a Dynamic Web Project with the JPA facet running on Tomcat 9.0.24. I have a single table, called profile, in my Prostgres 10.10 database and I have a single entity "Profile" that I am trying to persist. I am using Eclipse 4.12.0.
The profile table was created using pgAdmin 4 console and it's sequence exists.
Here is my code...
Maven POM:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.4</version>
</dependency>
Profile entity:
package za.co.ezimax.entity;
import java.time.LocalDate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
#Entity()
#Table(name = "profile")
public class Profile {
#Id
#GeneratedValue(strategy = GenerationType.AUTO)
private long id;
#Column(name="first_name", nullable = false, length = 80)
private String firstName;
#Column(name="last_name", nullable = false, length = 80)
private String lastName;
#Column(name="birth_date", columnDefinition = "DATE", nullable = false)
private LocalDate birthDate;
#Column(name="sex", nullable = false)
private int sex;
#Column(name="mobile_mac", nullable = false)
private String mobileMac;
#Column(name="mobile_no", nullable = false, length = 12)
private String mobileNo;
#Column(name="registration_date", columnDefinition = "DATE", nullable = false)
private LocalDate registrationDate;
#Column(name="user_password", nullable = false, length = 80)
private char[] userPassword;
public Profile() {
}
}
Code to persist entity:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ezimax");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Profile profile = new Profile();
profile.setFirstName("Hendre");
profile.setLastName("Louw");
profile.setSex(1);
profile.setMobileMac("ff:ff:ff:ff:ff:ff:ff:ff");
profile.setMobileNo("+27832000000");
profile.setRegistrationDate(LocalDate.now());
profile.setUserPassword("password".toCharArray());
em.persist(profile);
em.getTransaction().commit();
em.close();
emf.close();
Here is the exception I am getting:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.4.v20190115-ad5b7c6b2a): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: relation "sequence" does not exist
Position: 8
Error Code: 0
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
bind => [50, SEQ_GEN]
Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:342)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1650)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:906)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:970)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:640)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2096)
at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:311)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:275)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:261)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelectCall(DatasourceCallQueryMechanism.java:304)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelect(DatasourceCallQueryMechanism.java:284)
at org.eclipse.persistence.queries.DataModifyQuery.executeDatabaseQuery(DataModifyQuery.java:87)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:914)
at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3349)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1895)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1877)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1842)
at org.eclipse.persistence.sequencing.QuerySequence.update(QuerySequence.java:356)
at org.eclipse.persistence.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:293)
at org.eclipse.persistence.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:75)
at org.eclipse.persistence.sequencing.DefaultSequence.getGeneratedVector(DefaultSequence.java:168)
at org.eclipse.persistence.sequencing.Sequence.getGeneratedVector(Sequence.java:267)
at org.eclipse.persistence.internal.sequencing.SequencingManager$Preallocation_Transaction_NoAccessor_State.getNextValue(SequencingManager.java:487)
at org.eclipse.persistence.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:1109)
at org.eclipse.persistence.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:72)
at org.eclipse.persistence.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:372)
at org.eclipse.persistence.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:331)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.assignSequenceNumber(UnitOfWorkImpl.java:532)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNotRegisteredNewObjectForPersist(UnitOfWorkImpl.java:4388)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.registerNotRegisteredNewObjectForPersist(RepeatableWriteUnitOfWork.java:523)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4333)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:596)
at za.co.ezimax.rest.Servlet.doGet(Servlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.postgresql.util.PSQLException: ERROR: relation "sequence" does not exist
Position: 8
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2468)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2211)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:309)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:446)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:370)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:149)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:124)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:898)
... 55 more
As you mentioned you want to use sequences with JPA.
So you have to use the GenerationType.SEQUENCE and configure the name of the sequence:
#Id
#GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "sequence-generator"
)
#SequenceGenerator(
name = "sequence-generator",
sequenceName = "the_sequence_name"
)
private long id;
Replace the_sequence_name with the name of the sequence in PostgreSQL.
In your case GenerationType.AUTO translates to GenerationType.TABLE. The code is expecting that there's a table named SEQUENCE containing the values of the sequences. Since it doesn't exist, EclipseLink can't provide you with generated ids.
Either create the table (and the sequence row in it) or use a different GenerationType.
I have two classes "Project" and "Report". A Project can contain any number of Reports. When I add the first Report to a Project everything is working fine.
But when I add another Report to a Project, and use the saveOrUpdate method on the Project, I get a SQLGrammarException!
I have already checked the names of the columns.
Project mapping:
#Entity
#Table(name = "TB_PROJECT")
public class Project implements Serializable {
private static final long serialVersionUID = 1L;
#Id
#GeneratedValue(strategy = GenerationType.SEQUENCE)
#Column(name ="PROJECT_ID", unique = true, nullable = false)
private int projectID;
#Column(name = "NAME", unique = false, nullable = false)
private String name;
#Column(name = "CLIENT", unique = false, nullable = false)
private String client;
#OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
#JoinTable(name="PROJECT_REPORTS", joinColumns= {#JoinColumn(name="PROJECT_ID", referencedColumnName="PROJECT_ID")}
, inverseJoinColumns= {#JoinColumn(name="REPORT_ID", referencedColumnName="REPORT_ID")})
private List<Report> reportList = new ArrayList<Report>();
Report mapping:
#Entity
#Table(name = "TB_REPORT", uniqueConstraints = {
#UniqueConstraint(columnNames = "REPORT_ID") })
public class Report implements Serializable{
private static final long serialVersionUID = 1L;
#Id
#GeneratedValue(strategy = GenerationType.SEQUENCE)
#Column(name ="REPORT_ID", unique = true, nullable = false)
private int reportID;
#Column(name = "NAME", unique = false, nullable = false)
private String name;
#Column(name ="AMOUNT_COMPONENTS")
private int amountComponents;
#Column(name ="AMOUT_ACCEPTED")
private int amountAccepted;
#Column(name = "AMOUNT_REJECTED")
private int amountRejected;
#Column(name = "AMOUNT_DRAFT")
private int amountUnderDevelopment;
#Column(name = "AMOUNT_REVIEW")
private int amountUnderReview;
#Column(name = "TODELETE")
private Boolean toDelete = false;
Hibernate:
#Override
public void updatePersistentProject(Project project) {
try {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.saveOrUpdate(project);
session.getTransaction().commit();
session.close();
} catch (HibernateException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Console output:
Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into TB_REPORT (REPORT_ID, AMOUT_ACCEPTED, AMOUNT_COMPONENTS, AMOUNT_REJECTED, AMOUNT_DRAFT, AMOUNT_REVIEW, NAME, TODELETE) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: update TB_PROJECT set CLIENT = ?, NAME = ?, TO_DELETE = ? where PROJECT_ID=?
Hibernate: update TB_REPORT set AMOUT_ACCEPTED = ?, AMOUNT_COMPONENTS = ?, AMOUNT_REJECTED = ?, AMOUNT_DRAFT = ?, AMOUNT_REVIEW = ?, NAME = ?, TODELETE = ? where REPORT_ID=?
Hibernate: update TB_REPORT set AMOUT_ACCEPTED = ?, AMOUNT_COMPONENTS = ?, AMOUNT_REJECTED = ?, AMOUNT_DRAFT = ?, AMOUNT_REVIEW = ?, NAME = ?, TODELETE = ? where REPORT_ID=?
Hibernate: delete PROJECT_REPORTS where PROJECT_ID=?
Juli 20, 2019 10:07:40 VORM. org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 42601
Juli 20, 2019 10:07:40 VORM. org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: FEHLER: Syntaxfehler bei »PROJECT_REPORTS«
Position: 8
Juli 20, 2019 10:07:40 VORM. org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure
ERROR: HHH000346: Error during managed flush [org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [delete PROJECT_REPORTS where PROJECT_ID=?]]
Juli 20, 2019 10:07:40 VORM. org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ReportServlet] in context with path [/project] threw exception
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [delete PROJECT_REPORTS where PROJECT_ID=?]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1436)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:487)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2786)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1932)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:456)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:178)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:39)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:272)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
at dao.ProjectDAOImpl.updatePersistentProject(ProjectDAOImpl.java:70)
at logic.ReportImpl.createReport(ReportImpl.java:39)
at gui.ReportServlet.createReport(ReportServlet.java:223)
at gui.ReportServlet.doGet(ReportServlet.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at gui.LoginFilter.doFilter(LoginFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [delete PROJECT_REPORTS where PROJECT_ID=?]
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:77)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:95)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:125)
at org.hibernate.metamodel.model.domain.internal.collection.JoinTableRemovalExecutor.execute(JoinTableRemovalExecutor.java:123)
at org.hibernate.metamodel.model.domain.spi.AbstractPersistentCollectionDescriptor.remove(AbstractPersistentCollectionDescriptor.java:1245)
at org.hibernate.action.internal.CollectionUpdateAction.execute(CollectionUpdateAction.java:78)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:602)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:474)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:358)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1430)
... 39 more
Caused by: org.postgresql.util.PSQLException: FEHLER: Syntaxfehler bei »PROJECT_REPORTS«
Position: 8
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2468)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2211)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:309)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:446)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:370)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:149)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:124)
at org.hibernate.sql.exec.internal.JdbcMutationExecutorImpl.execute(JdbcMutationExecutorImpl.java:68)
... 49 more
I am getting org.springframework.dao.InvalidDataAccessResourceUsageException exception while fetching data from multiple tables in getMenusByRole. My query is correct and giving expected result on database.
Following is code snippet-
UserDaoImpl.java
package com.msoft.crm.daos;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.stereotype.Repository;
import org.w3c.dom.ls.LSInput;
import com.msoft.crm.entities.Users;
#Repository("UserDao")
public class UserDaoImpl implements UserDao {
#PersistenceContext
private EntityManager entityManager;
public String original,recipientAddress,firstName,userName;
#Override
public List<Users> getAllUsers() {
return new ArrayList<Users>();
}
#Override
public List<Users> validateLogin(String username, String password) {
String hql = "from Users u where u.username = :p_username and u.userPassword = :p_password";
Query q = entityManager.createQuery(hql);
q.setParameter("p_username", username);
q.setParameter("p_password", password);
List<Users> users = q.getResultList();
System.out.println("users : " + users);
return users;
}
#Override
public List<Users> getMenusByRole(long userId) {
String hql = " select ur.role_id ,ur.role_name ,ur.speciality ,ms.section_id ,ms.section_name ,ms.section_position ,"
+ "ms.section_icon ,mi.menu_id ,mi.menu_name ,mi.menu_action ,mi.menu_position ,mi.parent_menu_id "
+ "from MenuPrivileges mp inner join UserRoles ur on mp.role_id = ur.role_id "
+ "inner join MenuItems mi on mp.menu_id = mi.menu_id "
+ "inner join MenuSections ms on mi.section_id = ms.section_id "
+ "where mi.active_ind = '1' and mp.visible_ind = '1' "
+ "and mp.role_id = (select role_id from crm_users where user_id = :user_id) order by ms.section_position asc";
Query q = entityManager.createNativeQuery(hql);
q.setParameter("user_id", userId);
List<Users> l = q.getResultList();
System.out.println("l : " + l);
return l;
}
}
MenuPrivileges.java
package com.msoft.crm.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
#Entity
#Table(name="crm_menu_privileges")
public class MenuPrivileges {
#Id
#Column
private int role_id;
#Column
private int menu_id;
#Column
private String visible_ind;
public MenuPrivileges() {
this(0,0,"");
}
public MenuPrivileges(int role_id, int menu_id, String visible_ind) {
this.role_id = role_id;
this.menu_id = menu_id;
this.visible_ind = visible_ind;
}
//getter and setter
}
UserRoles.java
#Entity
#Table(name="crm_user_roles")
public class UserRoles {
#Id
#Column
private int role_id;
#Column
private String role_name;
#Column
private String speciality;
// getters and setters
}
MenuItems.java
#Entity
#Table(name="crm_menu_items")
public class MenuItems {
#Id
#Column
private int section_id;
#Column
private int menu_id;
#Column
private String menu_name;
#Column
private String menu_desc;
#Column
private String menu_action;
#Column
private int menu_position;
#Column
private int parent_menu_id;
#Column
private String active_ind;
// getter and setter
}
MenuSections.javv
#Entity
#Table(name="crm_menu_sections")
public class MenuSections {
#Id
#Column
private int id_pk;
#Column
private int section_id;
#Column
private String section_name;
#Column
private String section_desc;
#Column
private String section_icon;
#Column
private int section_position;
//getter and setter
}
Following is my stacktrace where both queries are working but getting above mentioned exception for getMenuByRole.
Hibernate:
select
users0_.user_id as user_id1_5_,
users0_.aadhar_no as aadhar_n2_5_,
users0_.active_ind as active_i3_5_,
users0_.created_by_user_id as created_4_5_,
users0_.created_date_time as created_5_5_,
users0_.email as email6_5_,
users0_.fname as fname7_5_,
users0_.lname as lname8_5_,
users0_.login_status as login_st9_5_,
users0_.mname as mname10_5_,
users0_.mobile as mobile11_5_,
users0_.photo as photo12_5_,
users0_.role_id as role_id13_5_,
users0_.password as passwor14_5_,
users0_.username as usernam15_5_
from
crm_users users0_
where
users0_.username=?
and users0_.password=?
users : [Users [userId=3, roleId=1, sectionId=0, sectionPosition=0, menuId=0, menuPosition=0, parentMenuId=0, specialityId=0, username=shirin, activeInd=1, loginStatus=1, roleName=null, speciality=null, sectionName=null, sectionIcon=null, menuName=null, menuAction=null, firstName=yogiraj, lastName=kulkarni, mobileNumber=9699999999, middleName=, emailAddress=yogirajk#msoft.co.in, aadhaarNumber=123456987456, profileImg=data:image/jpeg;base64,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, fullName=null, userPassword=e7202d28c87440d38bd5bf4ff37c7fcc, createdBy=1, createdDate=2017-06-14 11:16:12.0]]
active ind(service):1
In get menus role user id : 3
Hibernate:
select
ur.role_id ,
ur.role_name ,
ur.speciality ,
ms.section_id ,
ms.section_name ,
ms.section_position ,
ms.section_icon ,
mi.menu_id ,
mi.menu_name ,
mi.menu_action ,
mi.menu_position ,
mi.parent_menu_id
from
MenuPrivileges mp
inner join
UserRoles ur
on mp.role_id = ur.role_id
inner join
MenuItems mi
on mp.menu_id = mi.menu_id
inner join
MenuSections ms
on mi.section_id = ms.section_id
where
mi.active_ind = '1'
and mp.visible_ind = '1'
and mp.role_id = (
select
role_id
from
crm_users
where
user_id = ?
)
order by
ms.section_position asc
2017-11-07 10:27:47.364 WARN 3116 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1146, SQLState: 42S02
2017-11-07 10:27:47.364 ERROR 3116 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : (conn:143322) Table 'crm_application.MenuPrivileges' doesn't exist
Query is: select ur.role_id ,ur.role_name ,ur.speciality ,ms.section_id ,ms.section_name ,ms.section_position ,ms.section_icon ,mi.menu_id ,mi.menu_name ,mi.menu_action ,mi.menu_position ,mi.parent_menu_id from MenuPrivileges mp inner join UserRoles ur on mp.role_id = ur.role_id inner join MenuItems mi on mp.menu_id = mi.menu_id inner join MenuSections ms on mi.section_id = ms.section_id where mi.active_ind = '1' and mp.visible_ind = '1' and mp.role_id = (select role_id from crm_users where user_id = ?) order by ms.section_position asc, parameters [3]
org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:261)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:488)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at com.msoft.crm.daos.UserDaoImpl$$EnhancerBySpringCGLIB$$337e38b5.getMenusByRole(<generated>)
at com.msoft.crm.services.UserService.validateLogin(UserService.java:44)
at com.msoft.crm.controllers.LoginController.validateLogin(LoginController.java:42)
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 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2117)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1900)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1876)
at org.hibernate.loader.Loader.doQuery(Loader.java:919)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336)
at org.hibernate.loader.Loader.doList(Loader.java:2617)
at org.hibernate.loader.Loader.doList(Loader.java:2600)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2429)
at org.hibernate.loader.Loader.list(Loader.java:2424)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:336)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1967)
at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:322)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:125)
at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606)
at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:483)
at com.msoft.crm.daos.UserDaoImpl.getMenusByRole(UserDaoImpl.java:115)
at com.msoft.crm.daos.UserDaoImpl$$FastClassBySpringCGLIB$$da03a52e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
... 59 more
Caused by: java.sql.SQLSyntaxErrorException: (conn:143322) Table 'crm_application.MenuPrivileges' doesn't exist
Query is: select ur.role_id ,ur.role_name ,ur.speciality ,ms.section_id ,ms.section_name ,ms.section_position ,ms.section_icon ,mi.menu_id ,mi.menu_name ,mi.menu_action ,mi.menu_position ,mi.parent_menu_id from MenuPrivileges mp inner join UserRoles ur on mp.role_id = ur.role_id inner join MenuItems mi on mp.menu_id = mi.menu_id inner join MenuSections ms on mi.section_id = ms.section_id where mi.active_ind = '1' and mp.visible_ind = '1' and mp.role_id = (select role_id from crm_users where user_id = ?) order by ms.section_position asc, parameters [3]
at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:139)
at org.mariadb.jdbc.internal.util.ExceptionMapper.getException(ExceptionMapper.java:101)
at org.mariadb.jdbc.internal.util.ExceptionMapper.throwAndLogException(ExceptionMapper.java:77)
at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:226)
at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeInternal(MariaDbClientPreparedStatement.java:233)
at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeQuery(MariaDbClientPreparedStatement.java:177)
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 org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
at com.sun.proxy.$Proxy81.executeQuery(Unknown Source)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
... 80 more
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Table 'crm_application.MenuPrivileges' doesn't exist
Query is: select ur.role_id ,ur.role_name ,ur.speciality ,ms.section_id ,ms.section_name ,ms.section_position ,ms.section_icon ,mi.menu_id ,mi.menu_name ,mi.menu_action ,mi.menu_position ,mi.parent_menu_id from MenuPrivileges mp inner join UserRoles ur on mp.role_id = ur.role_id inner join MenuItems mi on mp.menu_id = mi.menu_id inner join MenuSections ms on mi.section_id = ms.section_id where mi.active_ind = '1' and mp.visible_ind = '1' and mp.role_id = (select role_id from crm_users where user_id = ?) order by ms.section_position asc, parameters [3]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1144)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1076)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1031)
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:203)
at org.mariadb.jdbc.MariaDbClientPreparedStatement.executeInternal(MariaDbClientPreparedStatement.java:224)
... 88 more
2017-11-07 10:27:47.383 ERROR 3116 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
In your getMenusByRole you are using plain SQL and not HSQL. So your table names should be crm_menu_privileges, crm_user_roles and so on.
As you are using the native query, the getResultSet() method will not return an object of User class. The other reason is HQL has not been invoked in this query and it will not be able to map the entities by its own.
In your case, the getResultSet() will return an array of Object as follows:
List<Object[]> l = q.getResultList();
And then you have to extract each element from this returned array.
For example, the Object[0] will return ur.role_id and Object[1] will return ur.role_name and so on as specified in your query.