Hibernate Persistence Unit Issue
Я занимаюсь разработкой концепции приложения, изучаю Spring MVC, Hibernate и MySQL. Я работал с одной сущностью (пользователем), но если я добавлю новую, мой код не будет работать
У меня есть 2 предложения (сущности), определенные следующим образом:
@Entity
public class Post implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private long idpost;
private String title;
private String content;
private long idauthor;
@ManyToOne
@JoinColumn(name = "idauthor")
private User user;
.......
}
а также
@Entity
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private long id;
private String username;
private String token;
..........
}
И мой файл persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="blogs-PU" transaction-type="RESOURCE_LOCAL">
<class>com.flacom.jpa.hibernate.example.domain.entity.User</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
</persistence>
Но при запуске моего приложения я получаю следующую ошибку:
Ошибка обработки запроса; Вложенное исключение: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: сообщение не отображается [ВЫБРАТЬ p ОТ ОТ сообщения p ]
Я знаю, что должен добавить "Post" в мой файл persistence.xml, но если я это сделаю, ошибка превратится в:
Ошибка создания bean-компонента с именем actionManager, определенным в ресурсе ServletContext [/WEB-INF/persistenceContext.xml]: невозможно разрешить ссылку на bean-объект entityManagerFactory при установке свойства bean-компонента entityManagerFactory; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем entityManagerFactory, определенным в ресурсе ServletContext [/WEB-INF/persistenceContext.xml]: сбой вызова метода init; вложенное исключение - javax.persistence.PersistenceException: [PersistenceUnit: blogs-PU] Невозможно создать EntityManagerFactory.
excepción
javax.servlet.ServletException: Servlet.init() для блогов сервлетов вызвал исключение org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke Error (Revalve.RevalveRej.Revalve.Revalve.Revalve.Reveve.RevalveRej.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve.Revalve: Revalve (100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) org.apache.coyote.http11.Acessor.http11.AcessorHttp11. AbstractHttp11Processor.java:1044) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313).concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:744z) причина
org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем'actionManager', определенным в ресурсе ServletContext [/WEB-INF/persistenceContext.xml]: невозможно разрешить ссылку на бин entityManagerFactory при установке свойства бина entityManagerFactory; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем entityManagerFactory, определенным в ресурсе ServletContext [/WEB-INF/persistenceContext.xml]: сбой вызова метода init; вложенное исключение - javax.persistence.PersistenceException: [PersistenceUnit: blogs-PU] Невозможно создать EntityManagerFactory org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolpp.r.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (AbstractAutowireCapableBeanFactory.java:1325) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support. springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) org.springframework.beans.factory.support. AbstractApplicationContext.java:900) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455) org.springframework.web.servlet.FrameworkServlet. FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) org.springframework.web.servlet.FrameworkServlet.initWebApplica ionContext(FrameworkServlet.java:339) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) org.springframework.web.servlet.HttpServletBean.int.init(GenericServlet.java:160) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jap:100. org). valve.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHorg). org org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) java.util.concurrent.ThreadPoolExecutor Java: 1142) java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:744) causa raíz
org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем entityManagerFactory, определенным в ресурсе ServletContext [/WEB-INF/persistenceContext.xml]: сбой вызова метода init; вложенное исключение: javax.persistence.PersistenceException: [PersistenceUnit: blogs-PU] Невозможно построить EntityManagerFactory org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(.Active.Fort.Port.Exfe.Reg.Reg.Exp.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support..AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (AbstractAutowireCapableBeanFactory.java:1325) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) org.springframework.beans.factory.support. preInstantiateSingletons(DefaultListableBeanFactory.java:580) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:900) org.springframework.pplication.raf.rate.rate.pte.pte.px.p0.b.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.tX.t_b.pl.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet. springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) javax.servlet.GenericServlet.init(GenericServlet.java:160) org.apache.catalina.authenticator.AuthenticatorBase.invoke(кошка) ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.javaapache.9) coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoProcessor Socket $ java:313) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.un 744) причина
javax.persistence.PersistenceException: [PersistenceUnit: blogs-PU] Невозможно построить EntityManagerFactory org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:916) org.hibernate.ejb.Ejjjf_EjBF_EjBF_EjBF_EjBF_EjB_EjF_EjB3.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods) (AbstractAutowireCapableBeanFactory.java:1479) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support..AbstractBeanFactory.getBean (AbstractBeanFactory.java:194) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference (BeanDefinitionValueResolver.java:322) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary (BeanDefinitionValueResolver.java:106) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (Abstract AutowireCapableBeanFactory.java:1325) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1086) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:517) org.springframework. beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory. (DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) org.springframework.beans.factory.support.AbstractBefBeanBean.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:900) org.springframework.context.support..java:442) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext или.initServletBean (FrameworkServlet.java:306) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) javax.servlet.GenericServlet.init(GenericSator.heache.jat)..invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(Принять ssLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:10bProy. $ $ org) или AbstractConnectionHandler.process(AbstractProtocol.java:607) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool. 11) util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) java.lang.Thread.run (Thread.java:744) causa raíz
org.hibernate.MappingException: повторяющийся столбец в сопоставлении для сущности: com.flacom.jpa.hibernate.example.domain.entity.Post column: idauthor (должен отображаться с помощью insert="false" update="false") org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:679) org.hibernate.mapping..PersistentClass.validate(PersistentClass.java:476) org.hibernate.mapping.RootClass.validate(RootClass.java:267) org.hibernate.cfg.Configuration.validate(Configuration.java:1286) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1715) org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:76) org.hibernate.ejb.Ejb3Configuration. Ejb3Configuration.java:887) или g.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73) org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1479) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.Abstract.tag beans.factory.support. BeanDefinitionValueResolver.java:106) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (AbstractAutowireCapableBeanFactory.java:1325) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1086) org.springframework. beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapable BeanFactory.java:517) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:456) org.sring.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support...support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458) org.springframework.web.servlet. web.servlet.FrameworkServlet.initServletBean (FrameworkServlet.java:306) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) javax.servlet.Genericer.erlet(org.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(Ошибка) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) org.apache.coyote.AcessproctionHort Ява: 607) или g.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ecutorP ThreadPoolExecutor.java:617) java.lang.Thread.run (Thread.java:744)
Моя таблица Post в базе данных MySQL правильно настроена.
Есть идеи?