[hibernate-dev] H4 mapping xsd question
Strong Liu
stliu at hibernate.org
Tue Jul 10 04:35:17 EDT 2012
current <query-element> is defined as :
<xs:complexType name="query-element" mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="query-param" type="query-param-element"/>
</xs:sequence>
<xs:attribute name="cache-mode" type="cache-mode-attribute"/>
<xs:attribute name="cache-region" type="xs:string"/>
<xs:attribute name="cacheable" default="false" type="xs:boolean"/>
<xs:attribute name="comment" type="xs:string"/>
<xs:attribute name="fetch-size" type="xs:int"/>
<xs:attribute name="flush-mode" type="flush-mode-attribute"/>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="read-only" type="xs:boolean"/>
<xs:attribute name="timeout" type="xs:int"/>
</xs:complexType>
then the generated org.hibernate.internal.jaxb.mapping.hbm.JaxbQueryElement has a _getContent()_ method for both String/Text and query-param attribute
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link JaxbQueryParamElement }{@code >}
* {@link String }
not very happy with this, it would be lot better to have a getQueryParam() and getValue() so we don't need to check the instance type and do the cast everytime.
On Jul 6, 2012, at 8:44 PM, Hardy Ferentschik wrote:
> Hi,
>
> first up some info regarding the xsd. We initially auto generated it from our dtd and then made some adjustments to resolve
> some conflicts. The outcome is for sure less than optimal.
>
>> I have two question about this xsd:
>>
>> 1. why we use xs:string for attributes such as timeout, batch-size, is there a specific reason?
>> I'm purposing this change https://gist.github.com/3059390
>
> I think it is just a result of the transformation. Changing it to xs:int seems reasonable to me. There are probably
> other cases we could improve.
>
>> 2. we used to have this with the dtd, but I doubt if it is still possible with in the current xsd. at least I could not find how to get this query text form org.hibernate.internal.jaxb.mapping.hbm.JaxbSqlQueryElement
>>
>> not a xsd guy, can someone take a look?
>>
>>
>> <sql-query name="orgNamesOnly">
>> <return-scalar column="NAME" type="string"/>
>> SELECT org.NAME FROM ORGANIZATION org
>> </sql-query>
>
> What do you get from JaxbSqlQueryElement#getContent. I could imagine that is is part of it and you need to cast. Probably another spot where we need to do some manual changes.
>
> --Hardy
-------------------------
Best Regards,
Strong Liu <stliu at hibernate.org>
http://about.me/stliu/bio
More information about the hibernate-dev
mailing list