2013-11-12 2 views
0

Im использует Spring и Hibernet для разработки Java webapp.Hibernate не использует диалект INNODB

Я хочу объявить внешние ключи, поэтому мне нужно использовать двигатель INNODB. Я объявил его в файле datasource.XML, но таблица автоматически создается Hibernate с использованием механизма MYSAM.

Вот моя сущность:.

package com.atlantis.atecliente.model; 

import java.util.List; 

импорт javax.persistence *;

@Entity 
@Table(name="Expediente") 
public class Expediente { 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private int codigo; 

@ManyToOne 
@JoinColumn(name = "tipoExpediente") 
private TipoExpediente tipoExpediente; 

@Column(length = 30) 
private String estado; 

public int getCodigo() { 
    return codigo; 
} 

public void setCodigo(int codigo) { 
    this.codigo = codigo; 
} 

public TipoExpediente getTipoExpediente() { 
    return tipoExpediente; 
} 

public void setTipoExpediente(TipoExpediente tipoExpediente) { 
    this.tipoExpediente = tipoExpediente; 
} 

public String getEstado() { 
    return estado; 
} 

public void setEstado(String estado) { 
    this.estado = estado; 
} 

} 

А вот datasource.XML:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:tx="http://www.springframework.org/schema/tx"  xmlns:jdbc="http://www.springframework.org/schema/jdbc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.1.xsd  http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"> 

<!-- <jdbc:embedded-database id="dataSource" />--> 

    <!-- data source for our database --> 
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" 
     value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" /> 
    <property name="url" value="jdbc:mysql://SBPORTALPRE/atclientepre" /> 
    <property name="username" value="********" /> 
    <property name="password" value="********" /> 
</bean> 

<bean id="sessionFactory"  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan"> 
     <list> 
      <value>com.atlantis.atecliente.model</value> 
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
     </props> 
    </property> 
</bean> 

<tx:annotation-driven transaction-manager="transactionManager"/> 
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"/> 
</bean> 

</beans> 

Некоторую помощь, пожалуйста?

+0

Убедитесь, что вы не имеете hibernate.cfg.xml (или файл свойств), которые переопределяет свойства. Кроме того, в вашей конфигурации «драйверManagerDataSource» нужен класс драйвера jdbc, а не «реализация» DataSource. –

+0

У меня нет hibernate.cfg.xml. Но при развертывании приложения отобразите интересную информацию: 15: 12: 38,459 INFO [Environment] HHH000206: hibernate.properties не найден 15: 12: 38,464 INFO [Environment] HHH000021: имя провайдера байтокода: javassist 15: 12: 39,675 INFO [Dialect] HHH000400: Использование диалекта: org.hibernate.dialect.MySQLDialect – alberph

+0

Ваше имя собственности неверно, у вас есть 'dialect', где он должен быть' hibernate.dialect'. Теперь он использует значение по умолчанию, основанное на обнаружении драйвера. –

ответ

0

Ошибка была в

<prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> 

Правильная линия:

<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> 

Благодаря

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