Добрый день, разрабатываю систему отчетности в виде web-приложения. Использую Spring и Hibernate.
Сделал xml файл ИмяСущности.hbm.xml, в него положил запрос CDATA.
<hibernate-mapping>
<class name="domain.Worklog" table="worklog">
<id name="id" column="id" />
<property name="author" column="AUTHOR" type="string"/>
<property name="startdate" column="STARTDATE" type="date"/>
<property name="timeworked" column="timeworked" type="int"/>
</class>
<query name="xmlGetWorkLog">
<![CDATA[FROM Worklog w WHERE w.author = :user]]>
</query>
</hibernate-mapping>
Хотел бы узнать, есть ли возможность вынести настройки запросов
<query name="xmlGetWorkLog">
<![CDATA[FROM Worklog w WHERE w.author = :user]]>
</query>
в отдельный файл общий xml и в файлы сущностей уже его просто импортировать? как-нибудь через mapping resources?
Так как запросы могут меняться, добавлять, удалять, не хотелось бы чтобы это делалось в файле настройки сущностей. А был общий файл настройки запросов и в нем менять.
Толкового не нашел в сети ничего :( Может кто так делал?
Или все же проще делать это через DOM и далее собирать запрос через StringBuilder?
XML позволяет включать внешние файлы в основной, так что можно попробовать использовать эту технику следующим образом:
entity.xml:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE hibernate-mapping[
<!--- здесь включаем внешний файл query.xml --->
<!ENTITY query SYSTEM "query.xml">
]>
<hibernate-mapping>
<class name="domain.Worklog" table="worklog">
<id name="id" column="id" />
<property name="author" column="AUTHOR" type="string"/>
<property name="startdate" column="STARTDATE" type="date"/>
<property name="timeworked" column="timeworked" type="int"/>
</class>
&query; <!--- а здесь используем подключенный файл --->
</hibernate-mapping>
query.xml:
<query name="xmlGetWorkLog">
<![CDATA[FROM Worklog w WHERE w.author = :user]]>
</query>
Надеюсь, что это поможет. В принципе большинство парсеров XML должны понимать данную конструкцию.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Посредством чего или с помощью чего взаимодействует один микросервис с другим?
Нужно сделать примитивное общение с устройством через COM-портКакие есть вообще библиотеки для этого? Что ни нахожу в гугле - то пизанские...
Есть плата Adruino UnoС нее через Serial передаю в COM-порт данные( if(Serial