Я новичок в Spring MVC и Hibernate.Как называется, я не знаю, как исправить эту ошибку.
У меня есть корневая сущность Task
, определенная следующим образом:
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name="_Task")
@DiscriminatorColumn(name = "task_type")
@Polymorphism(type = PolymorphismType.EXPLICIT)
@Getter @Setter @NoArgsConstructor
public class Task {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(nullable=false,unique=true)
private long id;
private String name;
private String date;
@Enumerated(EnumType.STRING)
private Progress progress;
@Enumerated(EnumType.STRING)
private Stage stage;
@Enumerated(EnumType.STRING)
private Priority priority;
private int quality;
@OneToOne
private User user;
@OneToOne
private Product product;
}
}
И у меня есть два подкласса OTask (другая задача)и PTask (Задача создания) определены следующим образом:
@Entity
@PrimaryKeyJoinColumn(name = "taskid")
@Table(name="_ptask")
@DiscriminatorValue("produce")
@Getter @Setter @NoArgsConstructor
public class PTask extends Task{
@OneToMany(fetch = FetchType.EAGER,mappedBy="ptask")
@Column(nullable=true)
private List<OTask> stasks;
@OneToMany(fetch = FetchType.EAGER,mappedBy="ptask")
@Column(nullable=true)
private List<OTask> prtasks;
@OneToMany(fetch = FetchType.EAGER,mappedBy="ptask")
@Column(nullable=true)
private List<OTask> satasks;
}
@Entity
@PrimaryKeyJoinColumn(name = "taskid")
@Table(name="_otask")
@DiscriminatorValue("other")
@Getter @Setter @NoArgsConstructor
public class OTask extends Task{
@ManyToOne
@JoinColumn(name="ptask_id", nullable=false)
private PTask ptask;
}
Ошибка столбца 'task_id' not found, когда я использую задачу Dao для получения списка задач.
@SuppressWarnings("unchecked")
public List<Task> getTaskList() {
Session s = this.sessionFactory.getCurrentSession();
return (List<Task>) s.createSQLQuery("select _task.* FROM _task;").addEntity(Task.class).list();
}
Вотсообщения об ошибках:
java.sql.SQLException: столбец ptask_id не найден.в com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:129) в com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:97) в com.mysjlc..exceptions.SQLError.createSQLException (SQLError.java:89) по адресу com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:63) по адресу com.mysql.cj.jdbc.result.mpl..java: 581) в com.mysql.cj.jdbc.result.ResultSetImpl.getLong (ResultSetImpl.java:928) в com.mchange.v2.c3p0.impl.NewProxyResultSet.getLong (NewProxyResultSet.java:24g at)hibernate.(AbstractStandardBasicType.java:267) в org.hibernate.type.AbstractStandardBasicType.nullSafeGet (AbstractStandardBasicType.java:263) в org.hibernate.type.AbstractStandardBasicType.naasicType.java:253) в org.hibernate.type.ManyToOneType.hydrate (ManyToOneType.java:190) в org.hibernate.persister.entity.AbstractEntityPersister.hydrate (AbstractEntityPersister.java:2969) в org.hader.loadFromResultSet (Loader.java:1696) в org.hibernate.loader.Loader.instanceNotYetLoaded (Loader.java:1628) в org.hibernate.loader.Loader.getRow (Loader.java:1515) в org.hibernate.loader.Loader.getRowFromResultSet (Loader.java:726) в org.hibernate.loader.Loader.processResultSet (Loader.java:953) в org.hibernate.loader.Loader.doQuery (Loader.java:921) в org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections (Loader.java:355) в org.hibernate.loader.Loader.doList (Loader.java:2554) в org.hibernate.loader.Loader.doList (Loader.java:2540) в org.hiber.loader.Loader.listIgnoreQueryCache (Loader.java:2370) в org.hibernate.loader.Loader.list (Loader.java:2365) в org.hibernate.loader.custom.CustomLoader.list (CustomLoader.java:353) в org.hibernate.internal.SessionImpl.listCustomQuery (SessionImpl.java:1909) в org.hibernate.internal.AbstractSessionImpl.list (AbstractSessionImpl.java:311) в org.hibernate.internal.SQLQueryImpl.list (SQLQueryImpl.java:141) в com.lyly«() по адресу org.springframework.cglib.proxy.MethodProxy.invoke (MethodProxy.java:204) по адресу org.springframework.aop.framework.CglibAopProxy $ CglibMethodInvocation.invokeJoinpoint (Cgliframe.pro.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:157) в org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocation (TransactionInterceptor.java:99) передача транзакциив org.springframework.transacion.interceptor.TransactionInterceptor.invoke (TransactionInterceptor.java:96) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) вorg.springframework.aop.interceptor.перехватывать (CglibAopProxy.java:673) в com.lyn.service.impl.TaskServiceImpl $$ EnhancerBySpringCGLIB $$ 7c9d87b4.getTaskList () в com.lyn.controller.PurchaserController.indejrefler (at.)NativeMethodAccessorImpl.invoke0 (нативный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (methodava.tho.jj.Java: 498) в org.springframework.web.method.support.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:205) в org.springframework.web.method.support.InvocableHandlerMethodin: 133) в org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:97) в org.springframework.weet.and и трейдер827) в org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:967) в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) .ralet.wef.processRequest (FrameworkServlet.java:970) по адресу org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:861) по адресу javax.servlet.http.HttpServlet.service (HttpServlet.javagorf).k.web.servlet.FrameworkServlet.service (FrameworkServlet.java:846) в javax.servlet.http.HttpServlet.service (HttpServlet.java:741) в org.apache.catalina.core.ApplicationFilterChain.interF231) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:53) в org.apcore.cat.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) в org.springframework.web.filter.njjFilterorg.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:19apilFalterFactor.AFF) в orgApplicationFilterChain.java:166) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:199) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) в org.apache.catalina.henticatorBeventJava: 490) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:139) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:92) в org.apache.catalina.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:668) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:74) в org.apache.catalina.connector.CoyoteAdapy: atserterorg.apache.coyote.http11.Http11Processor.service (Http11Processor.java:408) вorg.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:834) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1417) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:11).concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java).: 748)
Любая помощь будет оценена заранее, спасибо.