1

Я пытаюсь создать схему динамически с помощью hibernate/Java/GWT, я создаю файлы cfg.xml и hbm.xml динамически и сохраняя его в базе данных как blob.Как добавить ресурс сопоставления в конфигурацию гибернации программно для создания фабрики сеансов?

Поэтому я хочу построить sessionfactory для схемы. Для того же я создаю конфигурации объекта с помощью файла cfg.xml, но так как мои hbm.xml файлы находятся в другой таблице, они не являются файлами в файловой системе, так как я могу добавить его в объект конфигурации в качестве ресурса. Я не хочу, чтобы создать файлы для них в файловой системе.

Я попытался addInputStream(), AddFile() методы, но они бросают MappingNotFoundException.

Как обычный метод Я знаю, как создать sessionfactory, например, добавив тег <mapping resource="abc.hbm.xml"> в cfg.xml и т. Д. Но как я могу добавить их в конфигурацию, потому что у меня нет файлов hbm.xml?

мой файл cfg.xml хранится в таблице:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.password">passwd</property> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testSchema</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 
     <property name="javax.persistence.validation.mode">none</property> 
     <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property> 
     <property name="hibernate.default_entity_mode">dynamic-map</property> 
    </session-factory> 
</hibernate-configuration> 

мой файл hbm.xml хранится в таблице:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<hibernate-mapping> 
    <class entity-name="testTable1"> 
    <id column="id" name="id" type="Long"> 
     <generator class="identity"/> 
    </id> 
    <property column="id" length="20" name="id" type="Long"/> 
    <property column="booleanColumn" length="1" name="booleanColumn" type="Byte"/> 
    <property column="doubleColumn" length="20" name="doubleColumn" type="Long"/> 
    <property column="dateColumn" name="dateColumn" type="Double"/> 
    </class> 
</hibernate-mapping> 
+0

Пожалуйста, ваши cfg.xml здесь. –

+0

@ Ruchi: см. Мой отредактированный вопрос. –

+0

Вы использовали Spring для своего проекта? –

ответ

0

Получил ответ, я должен создать документ файловые прочитанных байтов из БД, а затем добавить их в объекте конфигурации ---

создать документ,

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
Document doc = builder.parse(bytesOfFile); 

, а затем,

hibernateConfiguration.addDocument(doc); 

Это работает для меня. спасибо.