2016-03-08 2 views
0

Я использую JPA для спящего режима. В одном из методов моей службы, где будут вставлены записи. У меня есть следующие строки, чтобы начать EntityManger:Hibernate продолжает отбрасывать/создавать таблицы при создании EntityManagerFactory

EntityManagerFactory factory = Persistence.createEntityManagerFactory("CghubDB"); 
    EntityManager manager = factory.createEntityManager(); 
    CghubDao dao = new CghubDao(manager); 

Когда я отладки кода, я замечаю, Hibernate делать странные вещи во время выполнения Persistence.createEntityManagerFactory. Выходной сигнал равен:

**Mar 08, 2016 11:42:45 AM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation 
INFO: HHH000204: Processing PersistenceUnitInfo [ 
    name: CghubDB 
    ...] 
Mar 08, 2016 11:42:45 AM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {5.1.0.Final} 
Mar 08, 2016 11:42:45 AM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
Mar 08, 2016 11:42:45 AM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
Mar 08, 2016 11:42:45 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
Mar 08, 2016 11:42:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
Mar 08, 2016 11:42:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://mdarisrac02d:3306/pancancer] 
Mar 08, 2016 11:42:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001001: Connection properties: {user=dian, password=****} 
Mar 08, 2016 11:42:45 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator 
INFO: HHH10001003: Autocommit mode: false 
Mar 08, 2016 11:42:45 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> 
INFO: HHH000115: Hibernate connection pool size: 20 (min=1) 
Mar 08, 2016 11:42:46 AM org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 
Mar 08, 2016 11:42:46 AM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation 
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4 
Hibernate: alter table PAIR_TB drop foreign key FK8s20mxutpctn5n8hm9bvg8iyd 
Hibernate: alter table SEQ_TB drop foreign key FKkr6f9ff4d9h4pds6cby5ucky0 
Hibernate: drop table if exists GROUP_TB 
Hibernate: drop table if exists PAIR_TB 
Hibernate: drop table if exists SEQ_TB 
Hibernate: create table GROUP_TB (ROW_ID integer not null, GROUP_NAME varchar(255), primary key (ROW_ID)) 
Hibernate: create table PAIR_TB (ROW_ID integer not null, PAIR_CODE varchar(255), GROUP_ID integer, primary key (ROW_ID)) 
Hibernate: create table SEQ_TB (ROW_ID integer not null, ALIQUOT_ID varchar(255), ANALYSIS_ID varchar(255), ANALYTE_CODE varchar(255), center varchar(255), checksum varchar(255), DATA_URL varchar(255), DCC_PROJECT varchar(255), DCC_SPECIMEN_TYPE varchar(255), DISEASE_ABBR varchar(255), DISEASE_FULL varchar(255), filename varchar(255), filepath varchar(255), filesize integer not null, LAST_MODIFIED datetime, LEGACY_ID varchar(255), PARTICIPANT_ID varchar(255), platform varchar(255), PUBLISHED_DATE datetime, refassem varchar(255), SAMPLE_ID varchar(255), SAMPLE_TYPE varchar(255), SEQ_FORMAT varchar(255), SEQ_SOURCE varchar(255), SPECIMEN_ID varchar(255), study varchar(255), TISSUE_TYPE varchar(255), TSS_ID varchar(255), PAIR_ID integer, primary key (ROW_ID)) 
Hibernate: alter table PAIR_TB add constraint FK8s20mxutpctn5n8hm9bvg8iyd foreign key (GROUP_ID) references GROUP_TB (ROW_ID) 
Hibernate: alter table SEQ_TB add constraint FKkr6f9ff4d9h4pds6cby5ucky0 foreign key (PAIR_ID) references PAIR_TB (ROW_ID) 
Mar 08, 2016 11:42:47 AM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources 
INFO: HHH000476: Executing import script 'org.hiber[email protected]420f11e' 
Mar 08, 2016 11:42:47 AM org.hibernate.hql.internal.QueryTranslatorFactoryInitiator initiateService 
INFO: HHH000397: Using ASTQueryTranslatorFactory** 

Я не понимаю, почему он пытается сбросить все таблицы и создать их снова. То же самое с внешними ключами. В Eclipse классы объектов были созданы автоматически.

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="CghubDB" > 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>org.mdacc.rists.cghub.model.GroupTb</class> 
     <class>org.mdacc.rists.cghub.model.PairTb</class> 
     <class>org.mdacc.rists.cghub.model.SeqTb</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://risurl:3306/pancancer" /> 
      <property name="javax.persistence.jdbc.user" value="user" /> 
      <property name="javax.persistence.jdbc.password" value="pass" /> 

      <!--Hibernate properties--> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
      <property name="hibernate.show_sql" value="true" /> 
      <property name="hibernate.hbm2ddl.auto" value="validate" /> 
     </properties> 
    </persistence-unit> 
</persistence> 
+0

Проверьте свойства единицы сохранения имущества, относящееся к поколению DDL. – Chris

ответ

1

Вы должны установить свойство спящего режима "hibernate.hbm2ddl.auto" на другое значение. Либо проверяйте, обновляйте, создавайте или создавайте-капли.

Более подробное описание можно найти на сайте Hibernate hbm2ddl.auto possible values and what they do?

+0

Я изменил значение для обновления и проверки в моем файле persistence.xml и повторил программу. Тем не менее, отбрасывание и создание таблиц. – Nasreddin

+0

Можете ли вы добавить файл persistence.xml (без доверенностей) –

+0

persistence.xml добавлено в исходное сообщение – Nasreddin

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