Идя здесь на конечности, вы рассматривали iBatis?Это реальная и удобная структура отображения запросов (я не решаюсь назвать ее как-то ORM).Вы должны создать XML-файлы, подобные этому:
<mapper namespace="org.mybatis.jpetstore.persistence.ProductMapper">
<cache />
<select id="getProduct" parameterType="string" resultType="Product">
SELECT
PRODUCTID,
NAME,
DESCN as description,
CATEGORY as categoryId
FROM PRODUCT
WHERE PRODUCTID = #{productId}
</select>
</mapper>
, который подключает маппер, подобный этому:
public interface ProductMapper {
Product getProduct(String productId);
}
, который позволяет вам получать доступ к данным из таких сервисов:
@Autowired
private ProductMapper productMapper;
public Product getProduct(String productId) {
return productMapper.getProduct(productId);
}
Который вы можете подключить к Spring:
<!-- enable autowire -->
<context:annotation-config />
<!-- enable transaction demarcation with annotations -->
<tx:annotation-driven />
<!-- define the SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="typeAliasesPackage" value="org.mybatis.jpetstore.domain" />
</bean>
<!-- scan for mappers and let them be autowired -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.mybatis.jpetstore.persistence" />
</bean>
См. Также полный пример с домашним животным .
Я не однозначный фанатiBatis, но он может соответствовать вашим потребностям в данном конкретном случае.