2017-05-13 1 views
0

以下のアプリケーションを実行しようとしましたが、エンティティマネージャに問題があると思われるエラーが発生しています。事前に助けてくれてありがとう。複数のスキーマ/データベースを持つスプリングブートアプリケーションのエンティティマネージャエラー

構成:

@Configuration 
public class Config { 

    @Bean 
    @Primary 
    @ConfigurationProperties(prefix = "spring.ds_buyer") 
    public DataSource buyerDataSource(){ 
     return DataSourceBuilder.create().build(); 
    } 

    @Bean 
    @ConfigurationProperties(prefix = "spring.ds_toner") 
    public DataSource tonerDataSource(){ 
     return DataSourceBuilder.create().build(); 
    } 

    @Bean 
    @ConfigurationProperties(prefix = "spring.ds_manager") 
    public DataSource managerDataSource(){ 
     return DataSourceBuilder.create().build(); 
    } 
} 

エンティティ1:

@Entity 
@Table(schema = "toner_buyer") 
public class Buyer { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "BUYER_ID") 
    private int buyerId; 

    @Column(name = "FIRST_NAME") 
    private String firstName; 

    @Column(name = "LAST_NAME") 
    private String lastName; 

    @Column(name = "BUYER_ADDRESS") 
    private String buyerAddress; 

    @ManyToOne 
    @JoinColumn(name = "MANG_ID") 
    private Manager manager; 

    @OneToMany(targetEntity = Toner.class, mappedBy = "buyer", 
      cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    private Set<Toner> toners; 

    public Buyer(){} 

    public Buyer(String firstName, String lastName, String buyerAddress, Set<Toner> buyerToner) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.buyerAddress = buyerAddress; 
     this.toners = buyerToner; 
    } 

    public int getBuyerId() { 
     return buyerId; 
    } 

    public void setBuyerId(int buyerId) { 
     this.buyerId = buyerId; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public String getBuyerAddress() { 
     return buyerAddress; 
    } 

    public void setBuyerAddress(String buyerAddress) { 
     this.buyerAddress = buyerAddress; 
    } 

    public Set<Toner> getBuyerToner() { 
     return toners; 
    } 

    public void setBuyerToner(Set<Toner> buyerToner) { 
     this.toners = buyerToner; 
    } 
} 

エンティティ2:

@Entity 
@Table(schema = "toner_manager") 
public class Manager { 

    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Id 
    @Column(name = "MANG_ID") 
    private int mid; 

    @Column(name = "FIRST_NAME") 
    private String firstName; 

    @Column(name = "LAST_NAME") 
    private System lastName; 

    @OneToMany(targetEntity = Buyer.class, mappedBy = "manager", cascade = CascadeType.ALL, fetch = FetchType.LAZY) 
    private Set<Buyer> buyers; 
} 

エンティティ3:

@Entity 
@Table(schema = "toner_stock") 
public class Toner { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name = "TONER_ID") 
    private long id; 

    @Column(name = "TONER_NAME") 
    private String tonerName; 

    @Column(name = "TONER_PRICE") 
    private int tonerPrice; 

    @Column(name = "TONER_QUANTITY") 
    private int tonerQuantity; 

    @ManyToOne 
    @JoinColumn(name = "BUYER_ID") 
    private Buyer buyer; 

    public Toner(){} 

    public Toner(int tonerId){ 
     this.id = tonerId; 
    } 

    public Toner(String tonerName, int tonerPrice, int tonerQuantity) { 
     this.tonerName = tonerName; 
     this.tonerPrice = tonerPrice; 
     this.tonerQuantity = tonerQuantity; 
    } 

    @Override 
    public String toString() { 
     return "Toner{" + 
       "id=" + id + 
       ", tonerName='" + tonerName + '\'' + 
       ", tonerPrice=" + tonerPrice + 
       ", tonerQuantity=" + tonerQuantity + 
       '}'; 
    } 

    public long getId() { 
     return id; 
    } 

    public void setId(long id) { 
     this.id = id; 
    } 

    public String getTonerName() { 
     return tonerName; 
    } 

    public void setTonerName(String tonerName) { 
     this.tonerName = tonerName; 
    } 

    public int getTonerPrice() { 
     return tonerPrice; 
    } 

    public void setTonerPrice(int tonerPrice) { 
     this.tonerPrice = tonerPrice; 
    } 

    public int getTonerQuantity() { 
     return tonerQuantity; 
    } 

    public void setTonerQuantity(int tonerQuantity) { 
     this.tonerQuantity = tonerQuantity; 
    } 
} 

application.properties:

spring.ds_toner.url = jdbc:mysql://localhost:3306/toner_stock?useSSL=false 
spring.ds_toner.username=toner 
spring.ds_toner.password=toner 
spring.ds_toner.driver-class-name=com.mysql.jdbc.Driver 

spring.ds_manager.url=jdbc:mysql://localhost:3306/toner_manager?useSSL=false 
spring.ds_manager.username=toner 
spring.ds_manager.password=toner 
spring.ds_manager.driver-class-name= com.mysql.jdbc.Driver 

spring.ds_buyer.url= jdbc:mysql://localhost:3306/toner_buyer?useSSL=false 
spring.ds_buyer.username=toner 
spring.ds_buyer.password=toner 
spring.ds_buyer.driver-class-name= com.mysql.jdbc.Driver 

spring.jpa.hibernate.ddl-auto=create-drop 
spring.jpa.hibernate.show-sql=true 
spring.jpa.hibernate.dialect= org.hibernate.dialect.MySQL55Dialect 
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext 

ポンポン:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.ronone</groupId> 
    <artifactId>TonerStock</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.2.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 


     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.2.9.Final</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-commons</artifactId> 
      <version>1.13.1.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.39</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.2.9.Final</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-commons</artifactId> 
     </dependency> 


     <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring3 --> 
     <dependency> 
      <groupId>org.thymeleaf</groupId> 
      <artifactId>thymeleaf-spring3</artifactId> 
      <version>3.0.3.RELEASE</version> 
     </dependency> 


    </dependencies> 



    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 



</project> 

プリントトレース:

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot ::  (v1.5.2.RELEASE) 

2017-05-13 08:00:06.542 INFO 657 --- [   main] com.ronone.Application     : Starting Application on Ronalds-MacBook-Pro.local with PID 657 (/Users/ronaldpitt/Desktop/TonerStock/target/classes started by ronaldpitt in /Users/ronaldpitt/Desktop/TonerStock) 
2017-05-13 08:00:06.546 INFO 657 --- [   main] com.ronone.Application     : No active profile set, falling back to default profiles: default 
2017-05-13 08:00:06.823 INFO 657 --- [   main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot[email protected]77be656f: startup date [Sat May 13 08:00:06 EDT 2017]; root of context hierarchy 
2017-05-13 08:00:08.549 INFO 657 --- [   main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$fd5e7927] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2017-05-13 08:00:09.005 INFO 657 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) 
2017-05-13 08:00:09.031 INFO 657 --- [   main] o.apache.catalina.core.StandardService : Starting service Tomcat 
2017-05-13 08:00:09.032 INFO 657 --- [   main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.11 
2017-05-13 08:00:09.204 INFO 657 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext 
2017-05-13 08:00:09.206 INFO 657 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 2386 ms 
2017-05-13 08:00:09.432 INFO 657 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 
2017-05-13 08:00:09.438 INFO 657 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 
2017-05-13 08:00:09.439 INFO 657 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 
2017-05-13 08:00:09.439 INFO 657 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 
2017-05-13 08:00:09.439 INFO 657 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 
2017-05-13 08:00:10.420 INFO 657 --- [   main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default' 
2017-05-13 08:00:10.453 INFO 657 --- [   main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ 
    name: default 
    ...] 
2017-05-13 08:00:10.598 INFO 657 --- [   main] org.hibernate.Version     : HHH000412: Hibernate Core {5.2.9.Final} 
2017-05-13 08:00:10.600 INFO 657 --- [   main] org.hibernate.cfg.Environment   : HHH000206: hibernate.properties not found 
2017-05-13 08:00:10.822 INFO 657 --- [   main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
2017-05-13 08:00:11.014 INFO 657 --- [   main] org.hibernate.dialect.Dialect   : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect 
2017-05-13 08:00:11.320 WARN 657 --- [   main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 
2017-05-13 08:00:11.327 INFO 657 --- [   main] o.apache.catalina.core.StandardService : Stopping service Tomcat 
2017-05-13 08:00:11.346 INFO 657 --- [   main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-05-13 08:00:11.355 ERROR 657 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:856) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] 
    at com.ronone.Application.main(Application.java:9) [classes/:na] 
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) ~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
    ... 16 common frames omitted 
Caused by: org.hibernate.MappingException: Could not determine type for: java.lang.System, at table: manager, for columns: [org.hibernate.mapping.Column(last_name)] 
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:455) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:422) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.mapping.Property.isValid(Property.java:226) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:597) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.mapping.RootClass.validate(RootClass.java:265) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:329) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) ~[hibernate-core-5.2.9.Final.jar:5.2.9.Final] 
    ... 22 common frames omitted 


Process finished with exit code 1 

答えて

1

可能なタイプで:

public class Manager { 
    private System lastName; 
} 

あなたはおそらく意味のプライベート文字列姓 '

関連する問題