Я пытаюсь использовать Hibernate для создания таблицы в базе данных SQL Server 2012.
Я установил ряд свойств в файле persistence.xml моего проекта Java:
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2012Dialect" />
<property name="hibernate.hbm2ddl.auto" value="auto" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.use_sql_comments" value="false" />
... и установить сведения о соединении с базой данных при создании пользовательского интерфейса моего источника данных, что выполняется в классе конфигурации Java:
dataSource.setDriverClassName(myDriver); // com.microsoft.sqlserver.jdbc.SQLServerDriver
dataSource.setUrl(myUrl); // jdbc:sqlserver://host:port;DatabaseName=dbname
dataSource.setUsername(myUser);
dataSource.setPassword(myPwd);
В классе Java я также устанавливаю схему по умолчанию при созданиифабрика диспетчера сущностей Java Persistence:
final Map<String, Object> jpaProperties = new HashMap<>();
jpaProperties.put("hibernate.default_schema", "mySchema");
entityManagerFactory.setJpaPropertyMap(jpaProperties);
entityManagerFactory.afterPropertiesSet();
return entityManagerFactory.getObject();
Класс домена Java был аннотирован следующим образом:
@Entity
@Table(name = "mytable")
public class MyTable {
...
}
Схема с именем "mySchema" была создана в базе данных SQL Server иАвторизация была предоставлена пользователю, указанному в источнике данных.
Когда я пытаюсь запустить функцию, которая должна создать таблицу как часть первого запуска (и заполнить ее соответствующим образом), я получаю следующее сообщение об ошибке:
SQLServerException: Invalid object name 'mySchema.mytable'
... и таблица не была создана в схеме.
Hibernate SQL выглядит следующим образом:
select alias0_.ID as alias1_0_0_
... other columns...
from mySchema.mytable alias0_
where alias0_.ID=?
Я используювеrsion 1.0.0. Окончательный вариант JAR hibernate-jpa-2.1-api в моем проекте Java.
Заранее благодарен за любую помощь.