gpt4 book ai didi

java - Hibernate:创建表异常

转载 作者:行者123 更新时间:2023-12-01 16:45:36 44 4
gpt4 key购买 nike

我突然出现 hibernate 异常,找不到问题所在。到目前为止,我的应用程序实际上运行得很好,但在某处/某处/某时我必须更改了某些导致错误的内容。但我没找到。

这里的错误:

2018-08-26 15:07:41.273  INFO 4580 --- [  restartedMain] org.hibernate.Version                    : HHH000412: Hibernate Core {5.3.2.Final}
2018-08-26 15:07:41.274 INFO 4580 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2018-08-26 15:07:41.330 INFO 4580 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2018-08-26 15:07:41.418 INFO 4580 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2018-08-26 15:07:41.845 INFO 4580 --- [ restartedMain] org.hibernate.tuple.PojoInstantiator : HHH000182: No default (no-argument) constructor for class: com.trademerger.trading.observable.TradeDistributingUnitExchange (class must be instantiated by Interceptor)
Hibernate: drop table single_unit_abc if exists
Hibernate: drop table trade_distributing_unit_abc if exists
Hibernate: drop table trade_distributing_unit_abc_observer_list if exists
Hibernate: drop table user_data_storage if exists
Hibernate: drop sequence if exists hibernate_sequence
Hibernate: create sequence hibernate_sequence start with 1 increment by 1
Hibernate: create table single_unit_abc (dtype varchar(31) not null, observer_id bigint not null, amount_of_coins_bought double not null, bid_active boolean not null, buy_profit double not null, id double not null, last_price double not null, order_number bigint not null, percantage_this_bot_can_take_frombtc double not null, sell_active boolean not null, sell_price double not null, sell_profit double not null, time_of_last_bid_order bigint not null, stop_received varchar(255), trade_distributing_unit_abc_objectid bigint, primary key (observer_id))
Hibernate: create table trade_distributing_unit_abc (dtype varchar(31) not null, objectid bigint not null, command integer, group varchar(255), reduce boolean, primary key (objectid))
2018-08-26 15:07:41.931 WARN 4580 --- [ restartedMain] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "create table trade_distributing_unit_abc (dtype varchar(31) not null, objectid bigint not null, command integer, group varchar(255), reduce boolean, primary key (objectid))" via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table trade_distributing_unit_abc (dtype varchar(31) not null, objectid bigint not null, command integer, group varchar(255), reduce boolean, primary key (objectid))" via JDBC Statement

Caused by: org.h2.jdbc.JdbcSQLException: Syntax Fehler in SQL Befehl "CREATE TABLE TRADE_DISTRIBUTING_UNIT_ABC (DTYPE VARCHAR(31) NOT NULL, OBJECTID BIGINT NOT NULL, COMMAND INTEGER, GROUP[*] VARCHAR(255), REDUCE BOOLEAN, PRIMARY KEY (OBJECTID)) "; erwartet "identifier"
Syntax error in SQL statement "CREATE TABLE TRADE_DISTRIBUTING_UNIT_ABC (DTYPE VARCHAR(31) NOT NULL, OBJECTID BIGINT NOT NULL, COMMAND INTEGER, GROUP[*] VARCHAR(255), REDUCE BOOLEAN, PRIMARY KEY (OBJECTID)) "; expected "identifier"; SQL statement:
create table trade_distributing_unit_abc (dtype varchar(31) not null, objectid bigint not null, command integer, group varchar(255), reduce boolean, primary key (objectid)) [42001-197]


Hibernate: create table trade_distributing_unit_abc_observer_list (trade_distributing_unit_abc_objectid bigint not null, observer_list_observer_id bigint not null)
Hibernate: create table user_data_storage (fee_storage_id bigint not null, api_key varchar(255), api_secret varchar(255), crash_indicator_active boolean not null, fee double not null, fee_must_be_paid boolean not null, lending_on boolean not null, password varchar(255), time_of_last_payment bigint not null, username varchar(255), volume_indicator_active boolean not null, primary key (fee_storage_id))
Hibernate: alter table trade_distributing_unit_abc_observer_list add constraint UK_2uiqrt4b7kfuy0tlp5l7vvfyq unique (observer_list_observer_id)
Hibernate: alter table single_unit_abc add constraint FKt4jg8bdgi9hnjp6fx4mgs27n foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc
2018-08-26 15:07:41.941 WARN 4580 --- [ restartedMain] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "alter table single_unit_abc add constraint FKt4jg8bdgi9hnjp6fx4mgs27n foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc" via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table single_unit_abc add constraint FKt4jg8bdgi9hnjp6fx4mgs27n foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc" via JDBC Statement

Caused by: org.h2.jdbc.JdbcSQLException: Tabelle "TRADE_DISTRIBUTING_UNIT_ABC" nicht gefunden
Table "TRADE_DISTRIBUTING_UNIT_ABC" not found; SQL statement:
alter table single_unit_abc add constraint FKt4jg8bdgi9hnjp6fx4mgs27n foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc [42102-197]


Hibernate: alter table trade_distributing_unit_abc_observer_list add constraint FK1xf8ji3rqb6qqncywcju013qo foreign key (observer_list_observer_id) references single_unit_abc
Hibernate: alter table trade_distributing_unit_abc_observer_list add constraint FK8yjbuf5pqdfnn4rwlt9ghfgl6 foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc
2018-08-26 15:07:41.946 WARN 4580 --- [ restartedMain] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "alter table trade_distributing_unit_abc_observer_list add constraint FK8yjbuf5pqdfnn4rwlt9ghfgl6 foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc" via JDBC Statement

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table trade_distributing_unit_abc_observer_list add constraint FK8yjbuf5pqdfnn4rwlt9ghfgl6 foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc" via JDBC Statement

Caused by: org.h2.jdbc.JdbcSQLException: Tabelle "TRADE_DISTRIBUTING_UNIT_ABC" nicht gefunden
Table "TRADE_DISTRIBUTING_UNIT_ABC" not found; SQL statement:
alter table trade_distributing_unit_abc_observer_list add constraint FK8yjbuf5pqdfnn4rwlt9ghfgl6 foreign key (trade_distributing_unit_abc_objectid) references trade_distributing_unit_abc [42102-197]

这个类

@Entity
public abstract class TradeDistributingUnitAbc {

//@OneToMany(mappedBy = "tradeDistributingUnitAbc", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@OneToMany
private List<SingleUnitAbc> observerList = Collections.synchronizedList(new LinkedList<>());

@Transient
private final Logger logger = LoggerFactory.getLogger(TradeDistributingUnitAbc.class);


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long objectID;

private Commands command;


private String group = "";


public TradeDistributingUnitAbc() {
}

}

应用程序属性。出于测试目的,我添加了 create-drop 通常我使用更新,但它不会改变任何内容。

spring.datasource.url=jdbc:h2:file:~/tmv2;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.username=admin
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

POM 依赖项:我最后所做的更改是删除 <scope>runtime</scope>在 H2 数据库依赖项。但即使反转它也会导致同样的错误。

<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1-1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<!-- <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.3.2.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.2.Final</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.0.3.RELEASE</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.21.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4 -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito -->
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-core -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2 -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.0-beta.5</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy -->
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.8.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy-agent -->
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.8.17</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.objenesis/objenesis -->
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>2.6</version>
<scope>test</scope>
</dependency>
</dependencies>

最佳答案

我认为你的错误是因为你类里面的这个陈述:

private String group = "";

我运行了日志中给出的 hibernate sql 查询,但没有此查询,并且它运行成功。试一试。

编辑:应该是这样的:

private String group; 

编辑 1:“GROUP”是 SQL 保留关键字,不应用作属性名称。检查here

关于java - Hibernate:创建表异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026671/

44 4 0
文章推荐: java - 接口(interface)中的默认方法
文章推荐: Java添加对象到ArrayList