[ 
https://issues.apache.org/jira/browse/OPENJPA-1850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12923758#action_12923758
 ] 

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 this.

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 jtds.


> Dynamic runtime @Table name configuration
> -----------------------------------------
>
>                 Key: OPENJPA-1850
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1850
>             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.

Reply via email to