Toplink JPA forces database table and column names to UPPERCASE! Why?

I have recently experienced using Toplink JPA while using glassfish ... migrating an existing application to EJB 3.0 persistence. Toplink JPA, as implemented in glassfish, forces tablenames and column names from my code to be uppercase in select statements, etc. as then submitted to the database. Why? I cannot find anything in the EJB 3.0 specs on persistence that even suggests this.
This created a serious problem for me, in my application. For my code to work I had to change the names of the database tables to all uppercase, even though that meant other of my applications, already written using the original mixed case names of the databases, will no longer work unless I revise the code in those applications! (I am using mySQL as my database.)
In both Unix/Linux and Java, which are both case sensitive, If I wanted names of files or other items to be uppercase, I would have written them that way. I do not expect some middleware piece of software to muck around with the case of text I have put into my code.
I am hopeful this 'feature' of the reference implementation of the EJB Persistence API will be corrected in a subsequent version. [Maybe you can tell I am not happy!]
Thanks for listening to my rant.

Robert,
I found that the name I specify in all of my @Table, @Column, ... annotations is used with the case as it is provided.
If TopLink determines the schema information through defaults then the names it comes up with are definitely upper cased by default.
Are you specifying the schema information that you want in annotations or XML?
Doug

Similar Messages

  • List tables and column names a stored procedure is querying

    Hello,
    Is there a way to list tables and column names that a stored procedure is querying, i.e, selecting from, using T-SQL?  If yes, is there a way to also show data types for the columns that a stored procedure is querying, i.e, selecting from?
    Thank you,  
    Lenfinkel

    One way to view the dependencies of an object is to use SSMS; navigate to the object, right click and select "view dependencies".  However this does not tell you what columns are being referenced by the Stored Procedure.
    One way to view what is being referenced by a stored procedure is to run something like
    select
    text
    from syscomments
    where
    id in
    (select id
    from sysobjects
    where
    name
    =[Your Object Name]
    And xtype
    in
    ('p','P')
    Please click "Mark As Answer" if my post helped. Tony C.

  • How to get table and column names thats being used in SQL , that's generating all my reports on SSRS.

    Good day,
    I searched through the forum and cant find anything.
    I have around 300 published reports on SSRS and we are busy migrating to a new system.
    They have already setup their tables on the new system and I need to provide them with a list of table names and column names that are being used currently to generate the 300 reports on SSRS.
    We use various tables and databases to generate these reports, and will take me forever to go through each query to get this info.
    Is it at all possible to write a query in SQL 2008 that will give me all the table names and columns being used?
    Your assistance is greatly appreciated.
    I thank you.
    Andre.

    There's no straightforward method for that I guess. There are couple of things you can use to get these details
    1. query the ReportServer.dbo.Catalog table
    for getting details
    you may use script below for that
    http://gallery.technet.microsoft.com/scriptcenter/42440a6b-c5b1-4acc-9632-d608d1c40a5c
    2. Another method is to run the reports and run sql profiler trace on background to retrieve queries used.
    But in some of these cases the report might be using a procedure and you will get only procedure. Then its upto you to get the other details from procedure like tables used, columns etc
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Check the table and column name in R12 web screen

    Hello Friends
    Please any body can tell me how can I find out the table name and column name in web based forms like supplier, customer in R12. In 11i I can find out the table name and column name from help menu by record history and diagnostic -> examine menu.
    Thansk
    Makshud

    Hi,
    Please see (Note: 741366.1 - How to get Supplier table information? How to get About this Page link in OA page in R12).
    Thanks,
    Hussein

  • Query to Find Table and Column Name by using a value

    Dear Legends,
    I hope and surfed in our forums and google to find the Table Name and Column Name by having a value(Number/String). And my where clauses are
    where owner NOT IN ('SYS','SYSTEM') and
          data_type IN ('CHAR','VARCHAR2','NUMBER')
    May I have your help for building the query. and my query as follows
    select a.owner, c.column_name, c.data_type, c.owner, c.table_name
    from dba_objects a, all_tab_cols c
    where a.owner NOT IN ('SYS','SYSTEM') and
    where c.owner NOT IN ('SYS','SYSTEM') and
    where c.data_type IN ('CHAR','VARCHAR2')
    order by a.owner
    Thanks,
    Karthik

    You can use
    select * from user_tab_columns a, user_tables b
    where a.table_name = b.table_name
    and  a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR');
    Or if you want to user DBA_* tables, you can use.
    select * from dba_tab_columns a, dba_tables b
    where a.table_name = b.table_name
    and a.owner = b.owner
    and  a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR')
    and b.owner not in ('SYS', 'SYSTEM');
    And now when I look a bit more closely, you don't need DBA_TABLES there. dba_tab_columns alone is sufficient. And requirement is still not clear yet. Why you need a group by there? If I get it right, you can use this.
    select * from dba_tab_columns a
    where a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR')
    and a.owner not in ('SYS', 'SYSTEM');
    Whether you use group by or not, the query will give you the same output.
    Ishan

  • Retrieve tables and column names in a universe

    Hi - Is there a way to retrieve tables and columns used in a given universe? We have to do analysis and need to know the tables as well as fields used anywhere in any object defined in the universe.
    I tried Query Builder and did some selection on ci_infoobjects and ci_appobjects; they don't seem to have that kind of information.
    Please advise.
    Thanks

    Hi.
    Are you try with the option save as ... and choose to pdf inside the designer?
    In designer tools->option you can choose what you want it print/PDF.
    I hope it be helpfull for you.
    Regards.

  • How to view all tables and column names from a remote database

    Hey Guys,
    I have a database in a remote server. I have the db link and the schema name.. Now i want to view all the tables in the remote database with column names.. I dont have access to that database using sql developer.. But i can view some tables using the db link..Is there any way i can view all the tables with the column names?

    user10683742 wrote:
    Dont think i have DBA access..It gives the following error
    ORA-00942: table or view does not exist
    00942. 00000 - "table or view does not exist"You don't have to have 'dba' access, per se. You just have to have SELECT ALL TABLES privilege. when you use a db_link, you are connecting to the remote db with the user defined in the link, and .. on that db .. you will have the privileges of the user defined in the db link. Exactly as if you had used sqlplus to connect to that db with that user.

  • Generating mixed case for table and column names

    I trying to get table definition from Oracle 9i database into my toplink workbench
    (version 9.0.3), the column names and table names are capitilized by
    default, how do I change this to be mixed case? Thanks

    I'm not sure why you want them changed. The Oracle database by default is case insensitive, which in essence means it converts everything to upper case when a case is not specified (which can be done by wrapping it in quotes). Unfortunately, Java strings are case sensitive. This means that if you try searching resultsets for "TableName" when the database driver is returning "TABLENAME", you will run into problems. It is probably better to have your project match your database as closely as possible to avoid any issues later on.
    That said, I don't know of a way to automatically have the workbench use mixed case names - it uses the strings as they are returned from the database. I believe you will need to manually change the table names if you want them to be different than what you have imported.
    Best Regards,
    Chris

  • Displaying table and column names

    i have a user that created a table, he is not sure of the name of the table. how do i display a list of tables and display the column names within a table??

    You would need to know who the user is, or alter the following script.
    The script waits for 2 entries:
    1- the tablenames that start with the first characters entered;
    2- the columns that start with the first characters entered;
    (If you want to search for "any" tables and/or columns that contain the charatcers you enter, preceed the parameters entered with a % sign).
    (If you want to search for "any" table or character, do not enter anything.
    This is a "raw" script that should do job. I think it should do the minimum you are looking for.
    SET PAGESIZE 50
    SET LINESIZE 120
    SET TIMING ON
    COLUMN OWNER HEADING 'OWNER' FORMAT A12
    COLUMN TABLE_NAME HEADING 'TABLE NAME' FORMAT A30
    COLUMN COLUMN_NAME HEADING 'COLUMN NAME' FORMAT A30
    COLUMN DATA_TYPE HEADING 'TYPE' FORMAT A10
    COLUMN DATA_PRECISION HEADING 'PREC' FORMAT 99G999
    COLUMN DEFAULTVAL HEADING 'DEF VALUE' FORMAT A10
    COLUMN INDEX_NAME HEADING 'INDEX NAME' FORMAT A30
    COLUMN INDEX_TYPE HEADING 'TYPE OF INDEX' FORMAT A27
    COLUMN UNIQUENESS HEADING 'UNIQUE' FORMAT A3
    COLUMN PARAMETERS HEADING 'PARAMETERS' FORMAT A500 NEWLINE
    -- Query
    SELECT DISTINCT --COUNT(*)
    C.TABLE_NAME,
    C.COLUMN_NAME,
    C.DATA_TYPE,
    C.DATA_LENGTH,
    C.DATA_PRECISION
    FROM ALL_TAB_COLUMNS C,
    ALL_CONS_COLUMNS CC1
    WHERE
    (C.COLUMN_NAME = CC1.COLUMN_NAME(+)
    AND UPPER(C.TABLE_NAME) = UPPER(CC1.TABLE_NAME(+)))
    AND UPPER(C.TABLE_NAME) LIKE UPPER('&PARAM1%')
    AND UPPER(C.COLUMN_NAME) LIKE UPPER('&PARAM2%')
    --AND OWNER = 'SYS'
    --AND DATA_TYPE = 'DATE'
    --AND DATA_TYPE != 'CLOB'
    --AND DATA_TYPE != 'LONG'
    ORDER BY C.TABLE_NAME, C.COLUMN_NAME;
    Hope this helps.

  • XLA tables and column names while creating accounting in AP.

    Dear All,
    Could anybody please tell me what are the columns of the XLE tables gets hitted when i am creating accounting for an AP invoice?
    Also Please let me know from which tables and which columns, i can get all eligible invoices for payment?
    any code snippet is highly appreciated.
    Thanks & Regards,
    BS.

    HI BS,
    Simply run a diagnostic on the respective invoice from the front end, and you will get the required information.
    Thanks &
    Best Regards,

  • How to get constraint name and table and column names

    Hi Team,
    I am a junior DBA. I want to check how many columns are under PRIMARY KEY constraint.
    I used dba_constraints view. Please find below details.
    SQL> select OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from dba_constraints
    2 where TABLE_NAME='DSET_PRODUCT_S';
    OWNER CONSTRAINT_NAME C TABLE_NAME
    SCOTT SYS_C10202456 C EMPLOYEE
    SCOTT SYS_C234576 C DEPT
    Please suggest any one.
    Regards,

    Do you want to list the columns under a primary key?
    This is listing index and columns:
      SELECT cn.owner, cn.constraint_name, cn.constraint_type, cn.table_name
           , cn.index_owner, cn.index_name, ix.column_position, ix.column_name
        FROM dba_constraints cn, dba_ind_columns ix
       WHERE     cn.table_name = 'DSET_PRODUCT_S'
             AND cn.constraint_type = 'P'
             AND cn.index_owner = ix.index_owner
             AND cn.index_name = ix.index_name
    ORDER BY cn.owner, cn.table_name, cn.index_owner, cn.index_name
           , ix.column_position;
    {code}
    Regards.
    Al                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Case sensitive table names and column names in 8i or 9i databases

    Hi everybody,
    I've got a couple of business-side colleagues who insist that Oracle table and column names are case sensitive. That is, there is a setting in the set up of a database that lets you pick if table and column names are case sensitive. For example, this would mean that there could be a table named EMP in a given schema schema plus a table named emp in that same schema.
    Can this be true? I'd be surprised of course, but I've been surprised before.
    Thanks for any direction.
    -- Bill Loggins

    You can do it, but I would avoid it like the plague.
    SQL> create table "a" (b date);
    Table created.
    SQL> create table "A" (b date);
    Table created.
    I think I would refuse to work on a database where this has been used !

  • Toplink changes table and columns to uppercase

    I found a way to make toplink not to change table and columns to upercase with setShouldForceFieldNamesToUpperCase=false setting (which should be false be default but so some reason isn't.)
    However, when toplink is used with JSF how can setShouldForceFieldNamesToUpperCase be set to false? Is there a way to do it in persistence.xml or perhaps there is a better way altogether? (I know i can use @Table and @Column but that is a lot of redundant code if all the fields in java have exact match in DB and i am looking for a cleaner solution.)
    My setup is a follows
    toplink v2-b49
    mysql 5.0 (with 5.0.5 driver)
    servlet/jsp 2.5/2.1
    jsf 1.2
    tomcat 6.0.13
    Thanks

    Thanks Doug
    I Created that class with
         public void customize(Session session) throws Exception {
              session.getDatasourceLogin().getPlatform().setShouldForceFieldNamesToUpperCase(false);
    But that doesn't help. Then I checked if it is being set correcly and saw that it is false even before I set it, so the default works as advertised and the var is false.
    So i guess this is not the problem. Any idea what can cause it?
    here is the class
    @Entity
    @Table(schema="jpaTABLE")
    public class User {
         @Id
         private int ID;
         private String Name;
         private String Password;
         private String Status;
    public User() {}
    geters...
    setters...
    here is the code
    Query q = em.createQuery("SELECT u FROM User u WHERE u.Name = :name AND u.Password = :password");
    here is the error
    [TopLink Fine]: 2007.06.07 04:20:24.636--ServerSession(9017297)--Connection(17227669)--Thread(Thread[http-8080-1,5,main])--SELECT ID, NAME, PASSWORD, STATUS FROM jpaTABLE.USER WHERE ((NAME = ?) AND (PASSWORD = ?))
         bind => [abc, 123]
    [TopLink Warning]: 2007.06.07 04:20:24.682--UnitOfWork(14633980)--Thread(Thread[http-8080-1,5,main])--Local Exception Stack:
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build b49-beta3 (05/31/2007))): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'jpaTABLE.USER' doesn't exist
    Error Code: 1146
    Call: SELECT ID, NAME, PASSWORD, STATUS FROM jpaTABLE.USER WHERE ((NAME = ?) AND (PASSWORD = ?))
         bind => [abc, 123]

  • Table and columns separation  in string

    Hi,
    I am having one column data containing combining table and column names like
    act_hand_table.work_order
    i want seperate table and column names
    i want separte . filed
    Please help me
    Regards,
    Kiran

    Kiran Bathula wrote:
    Hi,
    I am having one column data containing combining table and column names like
    act_hand_table.work_order
    i want seperate table and column names
    i want separte . filed
    Please help me
    Regards,
    KiranTry
    SQL> ed
    Wrote file afiedt.buf
      1  with t as
      2  (select 'act_hand_table.work_order' col from dual)
      3* select substr(col,1,instr(col,'.',1)-1)tbl,substr(col,instr(col,'.',1)+1) from t
    SQL> /
    TBL            SUBSTR(COL
    act_hand_table work_orderHope this helps
    Regards,
    Achyut

  • Table names and column names defined by other languages, not English.

    Hi, everyone.
    I am wondering if there are any possible problems or any inconvenience
    when I define table names and column names by Japanese, not English.
    Currently, we are using SQL server 2000 as a db and windows as a operating
    system. In the near future, we have the plan to change the database software
    and operating system to "Oracle 10g" and "Linux O/S".
    I have not experienced the oracle database, which has table names and column
    names defined by other languages, not English.
    Personally, I would like to use English as table names and column names.
    In this case, I might have to provide appropriate reasons.
    Are there any possible problems or any "inconvenience" in terms of
    system maintenance, development, or something else ?
    What could be pros and cons in this case?
    Thanks in advance.
    Have a nice day.
    Best Regards.
    Ho.

    First you need to make sure your database has character set that support Japanese.
    Choosing a Character Set
    http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#i1007681
    The main "inconvenience" you will have is if the client doesn't support Japanese or unicode, it will have trouble to access the table.
    And say in future after the application been developed, you want to implement the schema in some English environment, you will have hard time to do it.
    My point is English tablename and column names doesn't prevent you use it in Japanese environment and save Japanese data but not vice-versa. Hope you understand.

Maybe you are looking for