Hey there. The @Length annotation should only be used by OpenJPA as an instruction to the schema generator tool, the runtime relies on the database to enforce the maximum length of a given column - which may or may not throw an Exception given the configured behavior of the database.
Would you be willing to provide a unit test and a schema dump of your table from the database? On Friday, June 28, 2013, Virag Kothari wrote: > Hi, > > Can anyone please reply? > > In summary, two questions > > Having (@length=4000) is not working when using Oracle db. I see the > schema maps to varchar2(4000) but the openjpa insert accepts max 1000 chars > (throws ORA-24816 which is strange). It is not an Oracle issue as I tried > inserting in Oracle directly and anything less than 4000 chars works. Can > someone explain why openjpa allows only 1000 chars even if the length is > set higher? > > Is it possible to arrange the columns in a particular order (order defined > in java file or based on some other order) so all lob's can be at the end? > We require this if we face ORA-24816 > > Thanks, > > Virag > > > > > From: Virag Kothari <vi...@yahoo-inc.com <javascript:;><mailto: > vi...@yahoo-inc.com <javascript:;>>> > Date: Monday, June 24, 2013 1:35 PM > To: "users@openjpa.apache.org <javascript:;><mailto: > users@openjpa.apache.org <javascript:;>>" > <users@openjpa.apache.org<javascript:;> > <mailto:users@openjpa.apache.org <javascript:;>>> > Subject: Re: ORA-24816 - column ordering during inserts > > Hi, > > An update: > > It seems the problem is something else. > In our code, we have defined the length as 4000. > > @Basic > > @Column(name = "sla_xml", length = 4000) > > private String slaXml = null; > > However, if this column has more than 1000 characters, it complains with > the below ORA-24816. > > With less than 1000 characters, it works. > > Also, I see in the oracle schema that the column is mapped as varchar2. > > So even though the length is defined as 4000, why does openjpa refuse to > accept more than 1000 characters? > > Can anyone help me to figure this out? > > > Thanks, > > Virag > > > > > From: Virag Kothari <vi...@yahoo-inc.com <javascript:;><mailto: > vi...@yahoo-inc.com <javascript:;>>> > Date: Friday, June 21, 2013 8:01 PM > To: "users@openjpa.apache.org <javascript:;><mailto: > users@openjpa.apache.org <javascript:;>>" > <users@openjpa.apache.org<javascript:;> > <mailto:users@openjpa.apache.org <javascript:;>>> > Subject: ORA-24816 - column ordering during inserts > > Hi, > > We are using Open JPA 2.2.2 in Oozie project. > > We have a mixture of lob and varchar in our tables. We > recently converted few of lob's to varchar (4000). > Now sometimes, we are seeing the following error while inserting in table: > > Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-24816: > Expanded non LONG bind data supplied after actual LONG or LOB column > > It seems that ORA-24816 happens when lob's are not at the end of the > insert/update list. > > 2 questions: > > 1. > > Is it possible to arrange the columns in a particular order (order defined > in java file or based on some other order) so we can have all lob's at the > end? > > 2. We never encountered this error before even though we had 6 lobs and > almost dozen of varchars in our table. We converted 3 lobs to > varchar2(4000) and started seeing this issue intermittently. Does anyone > suspect that this conversion from lob to varchar has a role to play? > > Thanks, > > Virag > > > > > > > > > >