In case you are trying to run the test project, have you tried adding
add -DonSqlError=continue
to your maven command line ?
If not, you have to execute the SQL manually. Something like the following
usually does the trick.
try
{
String driverClassName = ...;
logger.info("Trying to load driver " + driverClassName);
Class.forName(driverClassName);
String username = ...;
String password = ...;
InputStream inputStream = getClass().getResourceAsStream(...);
schemaConnection =
DriverManager.getConnection(p.getProperty("connection.url"), username,
password);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(inputStream, SQL_CHARSET));
String line;
StringBuilder queryBuffer = new StringBuilder();
while ((line = bufferedReader.readLine()) != null)
{
if (line.trim().length() == 0
|| line.trim().startsWith("--")
|| line.trim().startsWith("#"))
{
continue;
}
queryBuffer.append(line);
}
bufferedReader.close();
StringTokenizer tokenizer = new StringTokenizer(queryBuffer.toString(),
";", false);
int successStatements = 0;
int errorStatements = 0;
while (tokenizer.hasMoreTokens())
{
String sqlQuery = tokenizer.nextToken();
Statement statement = schemaConnection.createStatement();
try
{
statement.execute(sqlQuery);
++successStatements;
}
catch (SQLException e)
{
logger.warn(e.getMessage() + ", failed statement : " + sqlQuery);
++errorStatements;
}
statement.close();
}
logger.info(
"Executed " + successStatements + " statements sucessfully and " +
errorStatements + " unsuccessfully");
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
Thanks,
Thomas
----- Ursprüngliche Mail -----
Von: "Graham Leggett" <[email protected]>
An: "Apache Torque Developers List" <[email protected]>
Gesendet: Sonntag, 17. August 2014 15:10:11
Betreff: Torque, Derby and unit tests
Hi all,
I am trying to test some torque code against an in-memory derby database, and
am running into a chicken-and-egg situation with respect to the database schema.
When the torque code runs it assumes the database has had a schema loaded,
which in the case of the in-memory derby database isn’t true. I am looking for
some switch in the torque configuration that will cause torque to apply a
schema on startup after the database is created by derby, but I am not finding
one.
A trawl of both Google and the torque docs have come up with a blank, there
seems to be a base assumption that the database will always exist and the
schema correctly applied before torque initialises itself, which makes the
writing of unit tests difficult.
Am I missing something fundamental?
Regards,
Graham
—
---------------------------------------------------------------------
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]