hi ajitesh,
ojb allows you to replace the whole sql-generator, but then it's totally up to you ...
ojb.properties:
#---------------------------------------------------------------------------------------- # SqlGenerator #---------------------------------------------------------------------------------------- # The SqlGeneratorClass entry defines the SqlGenerator implemementation to be used SqlGeneratorClass=org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl
on what level would you like to add hooks ? when a single criterion is translated to sql (ie. the LikeCriterion) or when the whole where-clause is built ?
jakob
Ajitesh Das schrieb:
Thanks a lot Jacob... According to this scenario, this works.
But Case A:
if I want to generate my custom SQL how do I do that? Does OJB has any hooks or something where I can register my custom SQLImpl class ..like this.
Case B: [This is somewhat torque related question] When OJB generates schema for target DB, I would like to override some of the behaviour for some datatypes...for e.g in DB type X, I know the datatype clob is broken, so
I would like to override the schema generation process so that instead of clob the schema will contain "image"
Thanks again for your response, Regds Ajitesh
-----Original Message-----
From: Jakob Braeuchi [mailto:[EMAIL PROTECTED] Sent: Thursday, September 16, 2004 11:08 AM
To: OJB Users List
Subject: Re: Configure generated SQL in OJB: HOWTO do that? Will
Velocity solve my problem?
hi ajitesh,
ojb creates the sql dynamically so there's no need for a velocity template. if you want to change from equal to like you can use Criteria#addLike.
hth jakob
Ajitesh Das schrieb:
Hi List:
I want to store an *supersize* byte array into a db table.
How do I control the SQL generated by ojb during queries? Do I have
to
write my own Velocity template and add that path to db.profile.
For the following case scenarion: My app needs to generate SQL query like this:
Here is the SQL that was bombed and was generated by OJB...
SELECT A0.PROPERTY_VALUE,A0.PROPERTY_NAME,A0.ID FROM PROPERTY A0 WHERE A0. PROPERTY_NAME = ?
I like to change/control the where clause here: for e.g:
SELECT A0.PROPERTY_VALUE,A0.PROPERTY_NAME,A0.ID FROM PROPERTY A0 WHERE A0. PROPERTY_NAME LIKE 0x110110110
HOW CAN I DO THAT?
------------------------------------------------------------------- The Scenario:
I have made the followings changes: DB Type : MSSQL In db-schema.xml:
<table name="PROPERTY" > <column name="ID" required="true" primaryKey="true"
type="INTEGER"/>
<column name=" PROPERTY_NAME" required="true" primaryKey="false" type="VARBINARY" /> <column name="PROPERTY_VALUE" required="true" primaryKey="false" type="VARBINARY"/> </table>
In the MSSQL DB =>> It creates IMAGE datatype in MSSQL Server.
In repository.xml:
<class-descriptor class="com.xxx.Property" table="PROPERTY"> <field-descriptor id="1" name="dbId" column="ID" jdbc-type="INTEGER" primarykey="true" nullable="false" indexed="true" autoincrement="true" locking="false" default-fetch="false" />
<field-descriptor id="2" name="propertyName" column="PROPERTY_NAME" jdbc-type="VARBINARY" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" default-fetch="false" conversion="com.xxx.yyy.Converter" />
<field-descriptor id="3" name="propertyValue" column="PROPERTY_VALUE" jdbc-type="VARBINARY" primarykey="false" nullable="true" indexed="false" autoincrement="false" locking="false" default-fetch="false" conversion="com.xxx.yyy.Converter" /> </class-descriptor> When I run simple query, I get the following exception:[ but running
in
MySQL is fine].
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: SQLException during the execution of the query (for a com.xxx.Property): The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator. The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.
java.sql.SQLException: The text, ntext, and image data types cannot
be
compared or sorted, except when using IS NULL or LIKE operator.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
