openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hugh (JIRA)" <>
Subject [jira] Commented: (OPENJPA-1850) Dynamic runtime @Table name configuration
Date Fri, 22 Oct 2010 05:12:14 GMT


Hugh commented on OPENJPA-1850:

The group of tables are not known at compile time. The specific table isn't known until runtime.
I'd like to be able to add new tables at anytime and run a new instance of this application
to service it.
It's name is read from a table in another database or from the properties file.

I agree it is slightly dangerous if the wrong table name is used, but at most it will throw
an error because the structure is different.

I have a byte code manipulator that I use to rewrite the @Table name annotation, but it never
gets asked to load my class. I see every other class being loaded.
The sql trace shows an error when the dummy table name is used.
I'm using Thread.currentThread().setContextClassLoader(New TableClassLoader(Thread.currentThread().getContextClassLoader()));
This is run in theMain class and I see the class I'm interested in being constructed after

How can I get my ClassLoader to be used to load this class?

I have a fully worked example I'll upload but it depends on the ASM bytecode manipulator and

> Dynamic runtime @Table name configuration
> -----------------------------------------
>                 Key: OPENJPA-1850
>                 URL:
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: usability
>         Environment: All environments
>            Reporter: Hugh
> I'm wondering if there is a way to map multiple tables who's name won't be known until
runtime to a single entity class. More specifically, My application uses a single entity which
it knows the schema for, but not the table name until runtime. The applications has to read
the table name from another know table after startup. All there is at deployment is the key
into that table. The application consists of a farm of identical apps all running different
configurations. They basically store data from different JMS queues to the database.
> I can't find anything useful about this except some byte code manipulators which don't
seem to work on the annotation since it appears that the class is already loaded.
> I think there is a legitimate need for such an enhancement. I often have run into sqlServer
users who don't know how to use segmented clustered indexing or can't install an Enterprise
version so don't have access to this. They create multiple tables and use prepared statements.
> This would enable other cheap dbms to be used without having to worry about locking and
contention at the table level.
> Does anyone have any opinions on this?

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message