2013-11-22 3 views
0

Я создал базу данных успешно без ошибок, а также добавил фиктивные данные после создания. Затем я пытаюсь получить данные из базы данных, однако я видел ошибку на консоли. Он пытается создать таблицу, которая была создана ранее. Не нужно воссоздавать:/Я искал интернет и не мог найти ничего связанного с этим.Ошибка Hibernate «Таблица не найдена» во время выполнения

Я использую MYSQL db, hibernate 4. Эти 3 класса (Material, MaterialProjectBrief, MaterialProjectImage) не имеют каких-либо onetomany, manytoone аннотаций. У меня есть другие таблицы той же структуры, они хорошо работают (делают CRUD). Я использую только аннотации. Я добавил отображение, классифицированное в hibernate.cfg.xml.

(К сожалению для написания быстро, потому что я должен покинуть офис в настоящее время.

Вот класс MaterialProjectImage.

import java.io.Serializable; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 

@Entity 
public class MaterialProjectImage implements Serializable { 

    private static final long serialVersionUID = 3886003470849765887L; 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Integer id; 

    @Column(name="LINK")  
    private String link; 

    @Column(name="TITLE") 
    private String title; 

    public Integer getId() { 
     return id; 
    } 

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

    public String getLink() { 
     return link; 
    } 

    public void setLink(String link) { 
     this.link = link; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

} 

Вот лог.

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.material

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [id, aboutus, about, sıtemap, vısıon, worklocatıon, mıssıon, customers, rad, goal]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: []

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [prımary]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.materialprojectbrief

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [id, tıtle, shortbrıef, ıconlınk]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: []

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [prımary]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata

INFO: HHH000262: Table not found: MaterialProjectImage

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.person

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [id, username, ınfo, ımgpath, name, role, password]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: []

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [prımary]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.project

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [id, faq, tıtle, url, ınstallatıon]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: []

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [prımary]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.projectwebview

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [id, ıntro, ımglınk, project_id, type]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: [fk_9qlhqdt00j5a5hknep10wu44c]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [fk_9qlhqdt00j5a5hknep10wu44c, prımary]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000261: Table found: PORTAL.project_document

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000037: Columns: [document_id, project_id]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000108: Foreign keys: [fk_6gwm4ft0jihnaprel3uem1or6, fk_ctnt2crdturw4k3xc5w4r5571]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.TableMetadata

INFO: HHH000126: Indexes: [fk_6gwm4ft0jihnaprel3uem1or6, uk_6gwm4ft0jihnaprel3uem1or6, fk_ctnt2crdturw4k3xc5w4r5571]

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata

INFO: HHH000262: Table not found: MaterialProjectImage

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.SchemaUpdate execute

ERROR: HHH000388: Unsuccessful: create table MaterialProjectImage (id integer not null auto_increment, LINK varchar(255), TITLE varchar(255), primary key (id))

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.SchemaUpdate execute

ERROR: Table 'materialprojectimage' already exists

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.SchemaUpdate execute

INFO: HHH000232: Schema update complete

ответ

2

Я подозреваю, что это чувствительность к регистру. Согласно документации MySQL:

Как таблица и d Имена atabase хранятся на диске, а в MySQL влияет системная переменная lower_case_table_names, которую вы можете установить при запуске mysqld. lower_case_table_names могут принимать значения, указанные в следующей таблице. В Unix значение по умолчанию lower_case_table_names равно 0. В Windows значение по умолчанию равно 1. В Mac OS X значение по умолчанию равно 2.

Значение Значение 0 Имена таблиц и баз данных хранятся на диске, используя указанную буквенную строку в инструкции CREATE TABLE или CREATE DATABASE. Сравнение имен чувствительно к регистру. Вы не должны устанавливать эту переменную в 0, если вы используете MySQL в системе с именами без учета регистра (например, Windows или Mac OS X). Если вы вынудите эту переменную к 0 с --lower-case-table-names = 0 в файловой системе, не учитывающей регистр, и получите доступ к талисменам MyISAM с использованием разных буквенных букв, это может привести к повреждению индекса. 1 Названия таблиц хранятся в нижнем регистре на диске, а сопоставления имен не чувствительны к регистру. MySQL преобразует все имена таблиц в нижний регистр при хранении и поиске. Это поведение также относится к именам баз данных и псевдонимам таблиц. 2 Имена таблиц и баз данных хранятся на диске, используя буквенный регистр, указанный в инструкции CREATE TABLE или CREATE DATABASE, но MySQL преобразует их в строчный формат поиска. Сравнение имен не чувствительно к регистру. Это работает только в файловых системах, которые не чувствительны к регистру! Имена таблиц InnoDB хранятся в нижнем регистре, как и для lower_case_table_names = 1.

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

Глядя на ваши журналы ошибок, кажется весьма вероятным:

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata

INFO: HHH000262: Таблица не найдена: MaterialProjectImage

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.SchemaUpdate выполнить

ОШИБКА: HHH000388: Неудачная: создать таблицу MaterialProjectImage (целочисленный идентификатор не нулевой auto_increment, LINK VARCHAR (255), TITLE VARCHAR (255), первичный ключ (ID))

22.Kas.2013 20:17: 05 org.hibernate.tool.hbm2ddl.SchemaUpdate выполнить

ОШИБКА: Таблица 'materialprojectimage' уже существует

22.Kas.2013 20:17:05 org.hibernate.tool.hbm2ddl.SchemaUpdate выполнить

INFO: HHH000232: Обновление схемы завершить

+0

Спасибо FYI. Я оценил. Кроме того, я подозреваю немного о чувствительности к регистру, но я не знаю, где искать и что делать. Более того, я не устанавливаю сопоставление имен, чтобы установить 0. Я бегу на Windows @ mohr_michael_a.Темно я должен пойти в офис, чтобы справиться с этой проблемой. –

0

Я установил эту проблему путем добавления @table (имя = «материал») аннотаций под @Entity аннотаций в соответствии с here. Прежде чем это сделать, я изменил нижние_таблицы_таблицы, однако проблема все еще продолжалась. Затем я понял, добавить аннотацию вклада. Благодарю.

Смежные вопросы