2016-06-20 3 views
1

ユーザ対ボード(多く)&ボード対カード(多く)、つまりユーザが多数のボードを持つことができる、多くのカード。私はSpring JPAを使用しており、dbスキーマを自動的に作成しています。私はプロパティを正しく設定しましたが、dbスキーマを自動的に構築できるように、プロパティを正しく接続できません。ここに私のモデルクラスは、助けてくださいます。 -JPA内の3つのエンティティ間の1対多のマッピング

@Entity 
@Table(name = "user") 
public class User { 

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

    @Column(name = "username") 
    private String username; 

    @Column(name = "password") 
    private String password; 

    @OneToMany(fetch = FetchType.LAZY ,mappedBy = "username" , targetEntity = Board.class) 
    private List<Board> boards; 

} 

ボードクラス

@Entity 
@Table(name = "board") 
public class Board { 

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

    @Column(name = "boardname") 
    private String boardname; 

    @Column(name = "boardcreationdate") 
    private DateTime boardCreationDate; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "userid", referencedColumnName = "userid") 
    private User username; 

    @OneToMany(fetch = FetchType.LAZY ,mappedBy = "boardname" , targetEntity = Board.class) 
    private Set<Card> cards; 

} 

カードのクラスを

@Entity 
@Table(name = "card") 
public class Card { 

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

    @Column(name = "cardName") 
    private String cardName; 

    @Column(name = "cardcreationdate") 
    private DateTime cardCreationDate; 

    @Column(name = "cardtimeondone") 
    private DateTime cardTimeOnDone; 

    @Column(name = "cardlife") 
    private DateTime cardLife; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "boardid", referencedColumnName = "boardid") 
    private Board boardname; 

} 

ここapplication.propertiesは、いくつかのプロパティを持つファイルです。

spring.datasource.initialize=true 
spring.datasource.platform=mysql 
spring.datasource.time-between-eviction-runs-millis=34000 
spring.datasource.min-evictable-idle-time-millis=55000 
spring.datasource.max-wait=28800000 
spring.jpa.generate-ddl=true 
spring.jpa.hibernate.ddl-auto=create 
spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect 
spring.jpa.properties.hibernate.format_sql=true 

以下のように、それは、スキーマを作成しますが、エラーを与えている: - 私は唯一のエンティティクラスに何か問題があると思い

 2016-06-20 15:12:37.288 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table board 
     drop 
     foreign key FKbon6omt9qov9iduumkuj117xw 
2016-06-20 15:12:37.357 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table board 
     drop 
     foreign key FKcefyg893q4c26nvw7uus84ts3 
2016-06-20 15:12:37.386 WARN 8772 --- [   main] o.h.t.s.i.ExceptionHandlerLoggedImpl  : GenerationTarget encountered exception accepting command : Unable to execute command [ 
    alter table board 
     drop 
     foreign key FKcefyg893q4c26nvw7uus84ts3] 

org.hibernate.tool.schema.spi.CommandAcceptanceException: Unable to execute command [ 
    alter table board 
     drop 
     foreign key FKcefyg893q4c26nvw7uus84ts3] 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:63) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlString(SchemaDropperImpl.java:370) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.applySqlStrings(SchemaDropperImpl.java:355) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.applyConstraintDropping(SchemaDropperImpl.java:327) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.dropFromMetadata(SchemaDropperImpl.java:229) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.performDrop(SchemaDropperImpl.java:153) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:125) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaDropperImpl.doDrop(SchemaDropperImpl.java:111) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:137) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:64) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:458) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:881) [hibernate-entitymanager-5.1.0.Final.jar:5.1.0.Final] 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:338) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:765) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1182) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1171) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at com.causecode.challenge.TrellocardlifeApplication.main(TrellocardlifeApplication.java:14) [classes/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_25] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_25] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_25] 
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_25] 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na] 
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Can't DROP 'FKcefyg893q4c26nvw7uus84ts3'; check that column/key exists 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_25] 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_25] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_25] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0_25] 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.Util.getInstance(Util.java:381) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734) ~[mysql-connector-java-5.1.6.jar:na] 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:51) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    ... 38 common frames omitted 

2016-06-20 15:12:37.392 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table card 
     drop 
     foreign key FKgicrq63fj0nx3bh6wlncf235i 
2016-06-20 15:12:37.424 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    drop table if exists board 
2016-06-20 15:12:37.437 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    drop table if exists card 
2016-06-20 15:12:37.448 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    drop table if exists user 
2016-06-20 15:12:37.468 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    create table board (
     boardid bigint not null auto_increment, 
     boardcreationdate tinyblob, 
     boardname varchar(255), 
     userid bigint, 
     primary key (boardid) 
    ) 
2016-06-20 15:12:37.539 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    create table card (
     id bigint not null auto_increment, 
     cardcreationdate tinyblob, 
     cardlife tinyblob, 
     card_name varchar(255), 
     cardtimeondone tinyblob, 
     boardid bigint, 
     primary key (id) 
    ) 
2016-06-20 15:12:37.600 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    create table user (
     userid bigint not null auto_increment, 
     password varchar(255), 
     username varchar(255), 
     primary key (userid) 
    ) 
2016-06-20 15:12:37.631 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table board 
     add constraint FKbon6omt9qov9iduumkuj117xw 
     foreign key (userid) 
     references user (userid) 
2016-06-20 15:12:37.752 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table board 
     add constraint FKcefyg893q4c26nvw7uus84ts3 
     foreign key (boardname) 
     references board (boardid) 
2016-06-20 15:12:37.812 WARN 8772 --- [   main] o.h.t.s.i.ExceptionHandlerLoggedImpl  : GenerationTarget encountered exception accepting command : Unable to execute command [ 
    alter table board 
     add constraint FKcefyg893q4c26nvw7uus84ts3 
     foreign key (boardname) 
     references board (boardid)] 

org.hibernate.tool.schema.spi.CommandAcceptanceException: Unable to execute command [ 
    alter table board 
     add constraint FKcefyg893q4c26nvw7uus84ts3 
     foreign key (boardname) 
     references board (boardid)] 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:63) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:423) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:408) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:359) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:165) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:134) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:120) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:148) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:64) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:458) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465) [hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:881) [hibernate-entitymanager-5.1.0.Final.jar:5.1.0.Final] 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:338) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:373) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:362) [spring-orm-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1076) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:851) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) [spring-context-4.3.0.RC2.jar:4.3.0.RC2] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:765) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1182) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1171) [spring-boot-1.4.0.M3.jar:1.4.0.M3] 
    at com.causecode.challenge.TrellocardlifeApplication.main(TrellocardlifeApplication.java:14) [classes/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_25] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_25] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_25] 
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_25] 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:na] 
Caused by: java.sql.SQLException: Cannot add foreign key constraint 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) ~[mysql-connector-java-5.1.6.jar:na] 
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734) ~[mysql-connector-java-5.1.6.jar:na] 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:51) ~[hibernate-core-5.1.0.Final.jar:5.1.0.Final] 
    ... 37 common frames omitted 

2016-06-20 15:12:37.814 DEBUG 8772 --- [   main] org.hibernate.SQL      : 
    alter table card 
     add constraint FKgicrq63fj0nx3bh6wlncf235i 
     foreign key (boardid) 
     references board (boardid) 
2016-06-20 15:12:37.900 INFO 8772 --- [   main] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hiber[email protected]329bad59' 
2016-06-20 15:12:37.954 INFO 8772 --- [   main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 
2016-06-20 15:12:39.191 INFO 8772 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
2016-06-20 15:12:39.200 INFO 8772 --- [   main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0 
2016-06-20 15:12:39.305 INFO 8772 --- [   main] c.c.challenge.TrellocardlifeApplication : Started TrellocardlifeApplication in 8.172 seconds (JVM running for 8.914) 
2016-06-20 15:12:39.306 INFO 8772 --- [  Thread-3] s.c.a.AnnotationConfigApplicationContext : Closing org.spring[email protected]7fad8c79: startup date [Mon Jun 20 15:12:31 IST 2016]; root of context hierarchy 
2016-06-20 15:12:39.308 INFO 8772 --- [  Thread-3] o.s.c.support.DefaultLifecycleProcessor : Stopping beans in phase 0 
2016-06-20 15:12:39.310 INFO 8772 --- [  Thread-3] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans on shutdown 
2016-06-20 15:12:39.310 INFO 8772 --- [  Thread-3] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 

Process finished with exit code 0 

。正しいモデルを定義し、mysqlで自動的に作成するのを手伝ってください。

+0

このマッピングで正しいDBスキーマを教えていただけたら、誰でも教えてください。 1対1および1対多のマッピング、双方向の多対1マッピング。 – hjain25

答えて

2

この方法を変更してみてくださいする必要がありますかどうかわから:

@Entity 
@Table(name = "user") 
public class User { 
    @OneToMany(mappedBy = "user") 
    private List<Board> boards; 

} 
@Entity 
@Table(name = "board") 
public class Board { 
    @ManyToOne(cascade=CascadeType.PERSIST) 
    @JoinColumn(name = "userid") 
    private User user; 

    @OneToMany(mappedBy = "board") 
    private Set<Card> cards; 
} 
@Entity 
@Table(name = "card") 
public class Card { 

    @ManyToOne(cascade=CascadeType.PERSIST) 
    @JoinColumn(name = "boardid") 
    private Board board; 

} 
+0

Bhashkar ..私はあなたのアプローチにもエンティティをマップしようとしましたが、3つのテーブルだけがあります。つまり、user(userid、password、username)、Board(boardid、boardcreationdate、boardname、userid)、Cardid、cardcreationdate 、cardlife、cardtimeondone、cardname、boardid)..私はボードとユーザーのテーブルにはボードとカードのコレクションの列の列がないことをここで質問をしました。 ..正しいスキーマが何であるべきか教えてください。 ..大いに役立つでしょう.. – hjain25

+0

@ hjain25これは正しいスキーマです。親指のルールとして、1対Mの関係では、1の側の主キーは(外部キー)列としてManyの側に行きます。だから、 'Board'の' Card'と 'userid'には' boardid'があります。コレクションは実際には仮想であり、hibernateは外部キーに基づいてこのコレクションに多くの側を取り込みます。 JPA/Hibernateで関係がどのように解決されているかについてもっとお読みください。これは一度の作業です。あなたがそれを理解すれば、残りの人生を忘れることはありません:) – Nikhil

+1

@ hjain25 dbの 'Board'値のリストで' User'テーブルに列を作成することはありません。 'User'のjavaオブジェクトには、それに関連付けられたすべての' Board'オブジェクトがあります。 –

1

ない、これはあなたのエラーを解決しますが、これは無効

@OneToMany(fetch = FetchType.LAZY ,mappedBy = "boardname" , targetEntity = Board.class) 
    private Set<Card> cards; 

に見えることが

@OneToMany(fetch = FetchType.LAZY ,mappedBy = "boardname" , targetEntity = Card.class) 
    private Set<Card> cards; 
+0

@ hjain25 Boards.javaの 'Card'のインポートステートメントを確認してください。あなたは 'javax.smartcardio.Card'をインポートしたようです。あなたはそれをカードエンティティの正しいパスに置き換える必要があります – Nikhil

+0

はい私はこの愚かな間違いを見つけて修正しましたが...私はDBスキーマについても確信したいと思います。カード(cardid、cardcreationdate、カードライフ、cardtimeondone、cardname、boardid)、ユーザー(userid、パスワード、ユーザー名)、user_boards(user_userid、boards_boardid)..ボード(boardid、boardcreationdate、boardname、userid)、board_cardsなぜ2つのエンティティのidをリンクする別々のスキーマを作成しているのか分かりません。ありがとう。 – hjain25

+0

はい、スキーマは正しくありません。中間テーブルを生成すべきではありません。これは、あなたの注釈がどこかで間違っていることを意味します。これを試してください - あなたの '@ JoinColumn'アノテーションから' referencedColumnName'を削除してください。また、上記のAnilのアプローチを試してください。簡潔に見えます。 – Nikhil

関連する問題