在JBOSS下开发CMP2.0时能不能使用LIKE ?1

03-05-22 xao_hx

在JBOSS下开发CMP2.0时能不能

在EJBQL中使用LIKE ?1

JUN
2003-05-26 09:17

可以的

用JBossQL,是EJB QL的超级

JBoss还支持DynamicQL

ejb
2003-05-28 14:22

请楼上的给个例子好么?

JUN
2003-06-01 02:27

JBossQL是EJB QL的超集,它支持了EJB QL不能支持Order ,Like等操作

生成JBossQL在jbosscmp-jdbc.xml中配置,只要把<ejb-ql>换成<jboss-ql>,其他和EJB QL标记相似,

[CODE]

<query>

<query-method>

<method-name>findByUsagesLike</method-name>

<method-params>

<method-param>java.lang.String</method-param>

</method-params>

</query-method>

<jboss-ql>

SELECT OBJECT(f) FROM Fungus f WHERE f.usages LIKE ?1

</jboss-ql>

</query>

摘录

注意一点的是,如果使用JBoss OpenTools,让JBoss和JBuilder进行整合的话

jbosscmp-jdbc.xml是由OpenTools自动生成的,修改过后,OpenTools有可能覆盖你的修改.

所以要注意.

jbosscmp-jdbc.xml源代码:

[CODE]

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE jbosscmp-jdbc PUBLIC '-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN' 'http://www.jboss.org/j2ee/dtd/_3_0.dtd'>

<!--

Generated by JBoss OpenTool 2.5 for JBoss Server 3.x

** DO NOT MAKE MANUAL MODIFICATIONS TO THIS FILE **

This deployment descriptor will be regenerated every time changes are made in the EJB designer.

Note: See opentool usage notes in jboss.xml.

- For those of you running into this problem for one-to-many relationships:

org.jboss.deployment.DeploymentException:

Role: ______ with multiplicity many using foreign-key mapping

is not allowed to have key-fields

verify that the 'many' table has a foreign key to the primary key in

the 'one' table and not the other way around, as may happen if you let

JBuilder generate the schema from the Beans, or if you do this

incorrectly yourself

-->

<jbosscmp-jdbc>

<enterprise-beans>

<entity>

<ejb-name>Fungus</ejb-name>

<cmp-field>

<field-name>formalName</field-name>

</cmp-field>

<cmp-field>

<field-name>chineseAlias</field-name>

</cmp-field>

<cmp-field>

<field-name>classification</field-name>

</cmp-field>

<cmp-field>

<field-name>feature</field-name>

</cmp-field>

<cmp-field>

<field-name>biology</field-name>

</cmp-field>

<cmp-field>

<field-name>season</field-name>

</cmp-field>

<cmp-field>

<field-name>plantingTech</field-name>

</cmp-field>

<cmp-field>

<field-name>latinName</field-name>

</cmp-field>

<cmp-field>

<field-name>usages</field-name>

</cmp-field>

<query>

<query-method>

<method-name>findByUsagesLike</method-name>

<method-params>

<method-param>java.lang.String</method-param>

</method-params>

</query-method>

<jboss-ql>

SELECT OBJECT(f) FROM Fungus f WHERE f.usages LIKE ?1

</jboss-ql>

</query>

</entity>

</enterprise-beans>

</jbosscmp-jdbc>

[/CODE]

看JBoss的书吧,这个书上的例子

JUN
2003-06-01 02:30

JBossQL是EJB QL的超集,它支持了EJB QL不能支持Order ,Like等操作

生成JBossQL在jbosscmp-jdbc.xml中配置,只要把<ejb-ql>换成<jboss-ql>,其他和EJB QL标记相似,

        <query>
            <query-method>
            <method-name>findByUsagesLike</method-name>
            <method-params>
                  <method-param>java.lang.String</method-param>
            </method-params>
            </query-method>
            <jboss-ql>
                 SELECT OBJECT(f) FROM Fungus f WHERE f.usages LIKE ?1
            </jboss-ql>
            </query>
<p>[QUOTE]


注意一点的是,如果使用JBoss OpenTools,让JBoss和JBuilder进行整合的话
jbosscmp-jdbc.xml是由OpenTools自动生成的,修改过后,OpenTools有可能覆盖你的修改.
所以要注意.


jbosscmp-jdbc.xml源代码:

<p>[CODE]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC '-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN' 'http://www.jboss.org/j2ee/dtd/_3_0.dtd'>
<!--
Generated by JBoss OpenTool 2.5 for JBoss Server 3.x

** DO NOT MAKE MANUAL MODIFICATIONS TO THIS FILE **
This deployment descriptor will be regenerated every time changes are made in the EJB designer.

Note: See opentool usage notes in jboss.xml.

- For those of you running into this problem for one-to-many relationships:
     org.jboss.deployment.DeploymentException:
       Role: ______ with multiplicity many using foreign-key mapping
       is not allowed to have key-fields
  verify that the 'many' table has a foreign key to the primary key in
  the 'one' table and not the other way around, as may happen if you let
  JBuilder generate the schema from the Beans, or if you do this
  incorrectly yourself

-->
<jbosscmp-jdbc>
    <enterprise-beans>
        <entity>
            <ejb-name>Fungus</ejb-name>
            <cmp-field>
                <field-name>formalName</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>chineseAlias</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>classification</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>feature</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>biology</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>season</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>plantingTech</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>latinName</field-name>
            </cmp-field>
            <cmp-field>
                <field-name>usages</field-name>
            </cmp-field>
            <query>
            <query-method>
            <method-name>findByUsagesLike</method-name>
            <method-params>
                  <method-param>java.lang.String</method-param>
            </method-params>
            </query-method>
            <jboss-ql>
                 SELECT OBJECT(f) FROM Fungus f WHERE f.usages LIKE ?1
            </jboss-ql>
            </query>
          </entity>
    </enterprise-beans>
</jbosscmp-jdbc>

<p>

只是<jboss-ql> <ejb-ql>

的区别,其他没什么

这是JBoss书上的一个例子,更多自己看书吧.

2Go 1 2 下一页