2016-11-07 32 views
0

在每个通过JNDI执行查询之前,我有一个非常有趣的需求来添加注释字符串(如/*Query Hint VPOD100*/)。我们可以在每次查询之前修改查询和评论(或查询提示)吗?如何配置在JNDI查询之前添加注释行

请找到我在jboss-as-7.2.0.Final中使用的JNDI配置。

<datasource jndi-name="java:/avalon-ds" pool-name="avalon-ds" enabled="true" use-ccm="false"> 
    <connection-url>jdbc:teradata://env.corp.xyz.com/charset=UTF8,DBC_PORT=1025</connection-url> 
    <driver-class>com.teradata.jdbc.TeraDriver</driver-class> 
    <driver>TeradataDriver</driver> 
    <new-connection-sql>select 1</new-connection-sql> 
    <pool> 
     <min-pool-size>2</min-pool-size> 
     <max-pool-size>4</max-pool-size> 
     <prefill>true</prefill> 
     <use-strict-min>true</use-strict-min> 
     <flush-strategy>IdleConnections</flush-strategy> 
    </pool> 
    <security> 
     <user-name>user</user-name> 
     <password>password</password> 
    </security> 
    <validation> 
     <check-valid-connection-sql>select 1</check-valid-connection-sql> 
     <validate-on-match>true</validate-on-match> 
     <background-validation>true</background-validation> 
     <background-validation-millis>3000</background-validation-millis> 
    </validation> 
    <timeout> 
     <blocking-timeout-millis>60000</blocking-timeout-millis> 
     <idle-timeout-minutes>5</idle-timeout-minutes> 
    </timeout> 
    <statement> 
     <share-prepared-statements>false</share-prepared-statements> 
    </statement> 
</datasource> 

请让我知道是否有任何问题。谢谢你通过我的问题。

+0

AFAICT你不能从['datasource'](http://www.ironjacamar.org/doc/userguide/1.1/en-US/html_single/index.html#deployingds)“元素中配置它。我看不到任何选择去做你想做的事。 –

+0

感谢TT的评论。 –

+0

也许如果你总结这不能从数据源元素中的选项完成,你应该改变你的问题+标题? –

回答

0

代替评论使用注释

@Comment("Query Hint VPOD100") 
... method 

为强制执行然后注释处理是可能的,或者使用反射,或在验证钩住。

不完全是你想要的,但即使是更多的操作。

+0

Hello Joop,谢谢您的回复。还有另一种业务逻辑,就是在数据库网关和负载均衡器中添加这些注释行。挑战是在不触及代码库的情况下进行配置更改以修改查询并添加查询提示。 –

相关问题