Nonverbis

Untitled

Nov 23rd, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.69 KB | None | 0 0
  1. CustomerRepo.java
  2.  
  3. public interface CustomerRepo extends CrudRepository<Customer, Integer> {
  4. public Customer findByPerson(Person person);
  5.  
  6. // 4. All customers who bought a particular product.
  7. @Query(value = "select distinct customers.id from orders join customers on customer_id = customers.id join order_item on order_id = orders.id where product_id = :productId", nativeQuery = true)
  8. public Iterable<Customer> findByProduct(@Param("product_id") int productId);
  9. }
  10.  
  11.  
  12.  
  13. GeneralService.java
  14.  
  15. @Service
  16. public class GeneralService {
  17.  
  18. @Autowired
  19. private CustomerRepo customerRepo;
  20.  
  21. public void selectData(){
  22. Product bread = productRepo.findByName("Bread");
  23. Product bycicle = productRepo.findByName("Bycicle");
  24.  
  25. // 4. All customers who bought a particular product.
  26. Iterable<Customer> customersWhoBoughtBycicle = customerRepo.findByProduct(bycicle.getId());
  27.  
  28. System.out.println("4. All customers who bought a particular product.");
  29. System.out.println(customersWhoBoughtBycicle.toString());
  30. System.out.println("================");
  31.  
  32. }
  33. }
  34.  
  35.  
  36.  
  37. Traceback
  38.  
  39.  
  40. 2020-11-23 16:48:58.866 WARN 28198 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703
  41. 2020-11-23 16:48:58.866 ERROR 28198 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : The column name discount was not found in this ResultSet.
  42. Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select distinct customers.id from orders join customers on customer_id = customers.id join order_item on order_id = orders.id where product_id = ?]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
  43. at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259)
  44. at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233)
  45. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:548)
  46. at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
  47. at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
  48. at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
  49. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
  50. at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145)
  51. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
  52. at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
  53. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
  54. at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
  55. at com.sun.proxy.$Proxy105.findByProduct(Unknown Source)
  56. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  57. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  58. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  59. at java.base/java.lang.reflect.Method.invoke(Method.java:566)
  60. at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
  61. at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
  62. at com.sun.proxy.$Proxy58.findByProduct(Unknown Source)
  63. at com.example.shop.service.GeneralService.selectData(GeneralService.java:121)
  64. at com.example.shop.CustomerOrderApplication.main(CustomerOrderApplication.java:15)
  65. Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
  66. at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:103)
  67. at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
  68. at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
  69. at org.hibernate.loader.Loader.doList(Loader.java:2853)
  70. at org.hibernate.loader.Loader.doList(Loader.java:2832)
  71. at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2664)
  72. at org.hibernate.loader.Loader.list(Loader.java:2659)
  73. at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:338)
  74. at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:2141)
  75. at org.hibernate.internal.AbstractSharedSessionContract.list(AbstractSharedSessionContract.java:1163)
  76. at org.hibernate.query.internal.NativeQueryImpl.doList(NativeQueryImpl.java:173)
  77. at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1533)
  78. at org.hibernate.query.Query.getResultList(Query.java:165)
  79. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  80. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  81. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  82. at java.base/java.lang.reflect.Method.invoke(Method.java:566)
  83. at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406)
  84. at com.sun.proxy.$Proxy110.getResultList(Unknown Source)
  85. at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:126)
  86. at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88)
  87. at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155)
  88. at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143)
  89. at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)
  90. at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)
  91. at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:152)
  92. at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:131)
  93. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
  94. at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:371)
  95. at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:134)
  96. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
  97. at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
  98. ... 16 more
  99. Caused by: org.postgresql.util.PSQLException: The column name discount was not found in this ResultSet.
  100. at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2748)
  101. at org.postgresql.jdbc.PgResultSet.getInt(PgResultSet.java:2626)
  102. at com.zaxxer.hikari.pool.HikariProxyResultSet.getInt(HikariProxyResultSet.java)
  103. at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:62)
  104. at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47)
  105. at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
  106. at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
  107. at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:243)
  108. at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:329)
  109. at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:3087)
  110. at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1870)
  111. at org.hibernate.loader.Loader.hydrateEntityState(Loader.java:1798)
  112. at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1771)
  113. at org.hibernate.loader.Loader.getRow(Loader.java:1623)
  114. at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740)
  115. at org.hibernate.loader.Loader.getRowsFromResultSet(Loader.java:1039)
  116. at org.hibernate.loader.Loader.processResultSet(Loader.java:990)
  117. at org.hibernate.loader.Loader.doQuery(Loader.java:959)
  118. at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
  119. at org.hibernate.loader.Loader.doList(Loader.java:2850)
  120. ... 44 more
  121.  
  122.  
  123. PostgreSQL
  124.  
  125. customer_order=# \dt
  126. List of relations
  127. Schema | Name | Type | Owner
  128. --------+----------------------+-------+----------------
  129. public | customers | table | customer_order
  130. public | order_item | table | customer_order
  131. public | orders | table | customer_order
  132. public | person | table | customer_order
  133. public | product | table | customer_order
  134. public | product__product_set | table | customer_order
  135. public | product_set | table | customer_order
  136. (7 rows)
  137.  
  138. customer_order=# select distinct customers.id from orders join customers on customer_id = customers.id join order_item on order_id = orders.id where product_id = 3;
  139. id
  140. ----
  141. 3
  142. (1 row)
  143.  
  144.  
Advertisement
Add Comment
Please, Sign In to add comment