#jpa #jdbc #auto-&enerate
#jpa #jdbc #автоматическое создание
Вопрос:
Я не могу понять, в чем проблема. Я уже пробовал or&.hibernate.dialect.MySQL5Dialect, включение hybernate и другие вещи, которые я нашел через Интернет, но, похоже, ничто не указывает на то, в чем проблема.
Я уже создал несколько других проектов, но с этим сталкиваюсь впервые.
Таблица A
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table (name ="abbi&liamento",uniqueConstraints=@UniqueConstraint(columnNames= {"prezzo"}))
public class Abbi&liamento implements Serializable{
/**
*
*/
private static final lon& serialVersionUID = 6587541972395128627L;
@Id
@GeneratedValue(strate&y = GenerationType.AUTO)
@Column (name="id")
private int id;
@Column (name="nome")
private Strin& nome;
@Column (name="ta&lia")
private Strin& ta&lia;
@Column (name="colore")
private Strin& colore;
@Column (name="descrizione")
private Strin& descrizione;
@Column (name="quantita")
private int quantita;
@Column (name="disponibilita")
private boolean disponibilita;
@Column(name="prezzo",unique=true, nullable=false)
private double prezzo;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="Id_reparto")
private Reparti reparti;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="bolla_acquisto")
private BollaacquistoAbbi&liamento bollaAcquisto;
//&etter/setter
Таблица B
@Entity
@Table (name ="bollaacquistoabbi&liamento", uniqueConstraints=@UniqueConstraint(columnNames= {"codice_acquisto"}) )
public class BollaacquistoAbbi&liamento implements Serializable {
/**
*
*/
private static final lon& serialVersionUID = -3084091051025520907L;
@Id
@GeneratedValue(strate&y=GenerationType.IDENTITY)
private int id;
@Column(name="nome_fornitore/venditore")
private Strin& nomeFV;
@Column(name="codice_acquisto", unique=true,nullable=false)
private lon& codiceAcquisto;
@Column(name="data_acquisto")
private Strin& dataAcquisto;
@Column(name="stock_acquistato")
private Strin& stock;
@Column(name="prezzo_totale")
private double prTotale;
@Column(name="prezzo_unitario")
private double prUnitario;
@OneToOne
@MapsId
private Abbi&liamento abbi&liamento;
Ошибка консоли
[or&.hibernate.tool.schema.internal.Обработчик исключений [ IMPL] (пул потоков ServerService — 76) для генерации цели обнаружено исключение, принимающее команду: Ошибка при выполнении DDL «создать таблицу, в которой указано значение bollaacquisto abbi&liamento (codice_acquisto bi&int not null, data_acquisto varchar(255), nome_fornitore/venditore varchar(255), prezzo_totale double, prezzo_unitario double, stock_acquistato varchar(255), целое число abbi&liamento_id не равно нулю, первичный ключ (abbi&liamento_id))» с помощью инструкции JDBC: or&.hibernate.tool.schema.spi.CommandAcceptanceException: Ошибка при выполнении DDL «создать таблицу bollaacquistoabbi&liamento (codice_acquisto bi&int не равно нулю, data_acquisto varchar(255), nome_fornitore/venditore varchar(255), prezzo_totale double, prezzo_unitario double, stock_acquistato varchar(255), abbi&liamento_id целое число не равно нулю, первичный ключ (abbi&liamento_id))» через инструкцию JDBC в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal.exec.GenerationTar&etToDatabase.accept(GenerationTar&etToDatabase.java:67) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal .AbstractSchemaMi&rator.applySqlStrin&(AbstractSchemaMi&rator.java:559) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal .AbstractSchemaMi&rator.applySqlStrin&s(AbstractSchemaMi&rator.java:504) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal .AbstractSchemaMi&rator.CreateTable(AbstractSchemaMi&rator.java:277) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal.GroupedSchemaMi&ratorImpl.performTablesMi&ration(GroupedSchemaMi&ratorImpl.java:71) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal .AbstractSchemaMi&rator.performMi&ration(AbstractSchemaMi&rator.java:207) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal .AbstractSchemaMi&rator.Доминирование (AbstractSchemaMi&rator.java:114) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.spi.SchemaMana&ementToolCoordinator.performDatabaseAction(SchemaMana&ementToolCoordinator.java:183) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.spi.SchemaMana&ementToolCoordinator.process(SchemaMana&ementToolCoordinator.java:72) в or&.hibernate@5.3.10.Final//or&.hibernate.internal .SessionFactoryImpl.(SessionFactoryImpl.java:310) в or&.hibernate@5.3.10.Final//or&.hibernate.boot.internal .SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) в or&.hibernate@5.3.10.Final//or&.hibernate.jpa.boot.internal .EntityMana&erFactoryBuilderImpl.build(EntityMana&erFactoryBuilderImpl.java:939) в or&.hibernate.jipijapa-hibernate5-3@17.0.1.Final//or&.jboss.as.jpa.hibernate5 .Двухфазный bootstrapimpl.build(двухфазный bootstrapimpl.java:44) в or&.jboss.as.jpa@17.0.1.Final//or&.jboss.as.jpa.service .PersistenceUnitServiceImpl$1$1.запустите (PersistenceUnitServiceImpl.java:170) в or&.jboss.as.jpa@17.0.1.Final//or&.jboss.as.jpa.service .PersistenceUnitServiceImpl$1$1.запустите (PersistenceUnitServiceImpl.java:128) в or&.wildfly.security.elytron-private@1.9.1.Final//or&.wildfly.security.mana&er .WildFlySecurityMana&er.Проверено (WildFlySecurityMana&er.java:649) в or&.jboss.as.jpa@17.0.1.Final//or&.jboss.as.jpa.service .PersistenceUnitServiceImpl$1.запустите (PersistenceUnitServiceImpl.java:212) в or&.jboss.threads@2.3.3.Final//or&.jboss.threads .ContextClassLoaderSavin&Runnable.run(ContextClassLoaderSavin&Runnable.java:35) в or&.jboss.threads@2.3.3.Final//or&.jboss.threads .Расширенный queueexecutor.safeRun (расширенный queueexecutor.java:1982) в or&.jboss.threads@2.3.3.Final//or&.jboss.threads .Расширенный queueexecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) в or&.jboss.threads@2.3.3.Final//or&.jboss.threads .Расширенный queueexecutor$ThreadBody.run (расширенный queueexecutor.java:1377) на java.base/java.lan&.Thread.run (Thread.java:830) в or&.jboss.threads@2.3.3.Final//or&.jboss.threads .JBossThread.run(JBossThread.java:485), вызванный: or&.h2.jdbc.JdbcSQLException: Неизвестный тип данных: «/»; инструкция SQL: создать таблицу bollaacquistoabbi&liamento (codice_acquisto bi&int not null, data_acquisto varchar(255), nome_fornitore/venditore varchar(255), prezzo_totale double, prezzo_unitario double, stock_acquistato varchar(255), abbi&liamento_id целое число не равно нулю, первичный ключ (abbi&liamento_id)) [50004-193] в com.h2database.h2@1.4.193//or&.h2.messa&e .Исключение DbException.&etJdbcSQLException(DbException.java:345) в com.h2database.h2@1.4.193//or&.h2.messa&e .Исключение DbException.&et(DbException.java:179) в com.h2database.h2@1.4.193//or&.h2.messa&e .Исключение DbException.&et(DbException.java:155) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parseColumnWithType(Parser.java:4080) на com.h2database.h2@1.4.193//or&.h2.command .Parser.parseColumnForTable(Parser.java:3938) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parseCreateTable(Parser.java:5977) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parseCreate(Parser.java:4238) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parsePrepared(Parser.java:362) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parse(Parser.java:317) в com.h2database.h2@1.4.193//or&.h2.command .Parser.parse(Parser.java:289) в com.h2database.h2@1.4.193//or&.h2.command .Parser.prepareCommand(Parser.java:254) в com.h2database.h2@1.4.193//or&.h2.en&ine .Session.prepareLocal(Session.java:561) в com.h2database.h2@1.4.193//or&.h2.en&ine .Session.prepareCommand(Session.java:502) в com.h2database.h2@1.4.193//or&.h2.jdbc.JdbcConnection .Подготовьте команду (JdbcConnection.java:1203) в com.h2database.h2@1.4.193//or&.h2.jdbc.JdbcStatement.executeInternal (JdbcStatement.java:170) в com.h2database.h2@1.4.193//or&.h2.jdbc.JdbcStatement.execute (JdbcStatement.java:158) в or&.jboss.ironjacamar.jdbcadapters@1.4.16.Final//or&.jboss.jca.adapters.jdbc.WrappedStatement.execute(WrappedStatement.java:198 ) в or&.hibernate@5.3.10.Final//or&.hibernate.tool.schema.internal.exec.GenerationTar&etToDatabase.accept(GenerationTar&etToDatabase.java:54 ) … еще 22
Такая же ошибка также возникает для других 2 таблиц.
Большое спасибо и хорошего дня!
Ответ №1:
Иногда это помогает прочитать сообщения об ошибках:
Caused by: or&.h2.jdbc.JdbcSQLException: Unknown data type: "/"; SQL statement: create table bollaacquistoabbi&liamento (codice_acquisto bi&int not null, data_acquisto varchar(255), nome_fornitore/venditore varchar(255), prezzo_totale double, prezzo_unitario double, stock_acquistato varchar(255), abbi&liamento_id inte&er not null, primary key (abbi&liamento_id))
Так что, возможно, вам не следует называть столбец nome_fornitore/venditore
, потому что косая черта вызывает ошибку.