|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
Discriminator issueI have a parent / child relationship where the child is a Entity that has a Discriminator annotation. Currently we are seeing this error show up in the logs. The Discriminator is based off the COVERAGE_TYPE field.
[7/7/09 17:02:12:207 CDT] 00000041 SystemOut O [EL Fine]: 2009-07-07 17:02:12.191--ClientSession(1159218456)--Connection(1268009876)--Thread(Thread[WebContainer : 3,5,main])--INSERT INTO CP_COVERAGE (COVERAGE_CODE, BUILDING_NUMBER, RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, SORT_SEQ, LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, -1.0, null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, null, null] [7/7/09 17:02:14:691 CDT] 00000041 SystemOut O [EL Warning]: 2009-07-07 17:02:14.519--UnitOfWork(1153582274)--Thread(Thread[WebContainer : 3,5,main])--Exception [EclipseLink-4002] (Eclipse Persistence Services - 1.1.1.v20090430-r4097): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.DataTruncation: Data truncation Error Code: 0 Call: INSERT INTO CP_COVERAGE (COVERAGE_CODE, BUILDING_NUMBER, RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, SORT_SEQ, LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, -1.0, null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, null, null] Query: InsertObjectQuery(com.gmrc.jpa.domain.CpCoverage@71547154) The problem seems to be that it is trying to insert CpCoverage value instead of the correct value into that field. We have tried setting the COVERAGE_TYPE field explicitly and leaving it blank and get the same result. I have tried a very simple example of this and it seems to work fine. CpTransaction cpTrans = new CpTransaction(); cpTrans.setTransactionStatus(TransactionStatus.IN_PROGRESS); cpTrans.setTransactionType(TransactionType.NEW_BUSINESS); cpTrans.setParentTransactionId(0L); CpTransCoverage cpTerrorism = new CpTransCoverage(); cpTerrorism.setCoverageCode("999"); cpTrans.setCpTerrorismCoverage(cpTerrorism); cpTransactionManager.save(cpTrans); Setting only the non-nullable fields and then adding the CpTransCoverage. @Entity @DiscriminatorValue(value = "P") public class CpTransCoverage extends CpCoverage { ... @Entity @Table(name = "CP_COVERAGE") @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "COVERAGE_TYPE", discriminatorType = DiscriminatorType.STRING, length = 1) public class CpCoverage extends BaseDomain implements java.io.Serializable { .... Anything overly obvious I am missing here? |
|
|
Re: Discriminator issueIt looks like you are persisting a CpCoverage (the superclass) not a CpTransCoverage in your app somewhere. The class name is the default indicator, which is what it is getting. You should also set a DiscriminatorValue on CpCoverage, or make it abstract.
James Sutherland EclipseLink, TopLink Wiki: EclipseLink, TopLink Forums: TopLink, EclipseLink Book: Java Persistence |
|
|
RE: Discriminator issueRight before I do the update, I inspected the CpTransaction object using
the debugger and the cpTransCoverage object is com.gmrc.jpa.domain.CpTransCoverage@77a877a8. In the code prior to setting it, we first create the object as a new CpCoverage, then before setting it we create a CpTransCoverage with a constructor call passing in the CpCoverage and updating all fields with the values from that object passed in, not retaining the reference to the actual object. Anything else I should be checking? -----Original Message----- From: eclipselink-users-bounces@... [mailto:eclipselink-users-bounces@...] On Behalf Of James Sutherland Sent: Wednesday, July 08, 2009 9:21 AM To: eclipselink-users@... Subject: Re: [eclipselink-users] Discriminator issue It looks like you are persisting a CpCoverage (the superclass) not a CpTransCoverage in your app somewhere. The class name is the default indicator, which is what it is getting. You should also set a DiscriminatorValue on CpCoverage, or make it abstract. khaskett wrote: > > I have a parent / child relationship where the child is a Entity that > has a Discriminator annotation. Currently we are seeing this error > show up in the logs. The Discriminator is based off the COVERAGE_TYPE field. > > [7/7/09 17:02:12:207 CDT] 00000041 SystemOut O [EL Fine]: 2009-07-07 > 17:02:12.191--ClientSession(1159218456)--Connection(1268009876)--Threa > d(Thread[WebContainer > : 3,5,main])--INSERT INTO CP_COVERAGE (COVERAGE_CODE, BUILDING_NUMBER, > RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, > LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, > PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, SORT_SEQ, > LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, > PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, > PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, > BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) > bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, -1.0, > null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, > null, null] > [7/7/09 17:02:14:691 CDT] 00000041 SystemOut O [EL Warning]: > 2009-07-07 > 17:02:14.519--UnitOfWork(1153582274)--Thread(Thread[WebContainer : > 3,5,main])--Exception [EclipseLink-4002] (Eclipse Persistence Services > - > 1.1.1.v20090430-r4097): > org.eclipse.persistence.exceptions.DatabaseException > Internal Exception: java.sql.DataTruncation: Data truncation Error > Code: 0 > Call: INSERT INTO CP_COVERAGE (COVERAGE_CODE, BUILDING_NUMBER, > RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, > LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, > PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, SORT_SEQ, > LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, > PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, > PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, > BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) > bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, -1.0, > null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, > null, null] > Query: InsertObjectQuery(com.gmrc.jpa.domain.CpCoverage@71547154) > > The problem seems to be that it is trying to insert CpCoverage value > instead of the correct value into that field. > > We have tried setting the COVERAGE_TYPE field explicitly and leaving > it blank and get the same result. I have tried a very simple example > of this and it seems to work fine. > > CpTransaction cpTrans = new CpTransaction(); > cpTrans.setTransactionStatus(TransactionStatus.IN_PROGRESS); > cpTrans.setTransactionType(TransactionType.NEW_BUSINESS); > cpTrans.setParentTransactionId(0L); > CpTransCoverage cpTerrorism = new CpTransCoverage(); > cpTerrorism.setCoverageCode("999"); > cpTrans.setCpTerrorismCoverage(cpTerrorism); > > cpTransactionManager.save(cpTrans); > > Setting only the non-nullable fields and then adding the > > @Entity > @DiscriminatorValue(value = "P") > public class CpTransCoverage extends CpCoverage { ... > > @Entity > @Table(name = "CP_COVERAGE") > @Inheritance(strategy = InheritanceType.SINGLE_TABLE) > @DiscriminatorColumn(name = "COVERAGE_TYPE", discriminatorType = > DiscriminatorType.STRING, length = 1) public class CpCoverage extends > BaseDomain implements java.io.Serializable { > > .... > > Anything overly obvious I am missing here? > > > ----- http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland http://www.eclipse.org/eclipselink/ EclipseLink , http://www.oracle.com/technology/products/ias/toplink/ TopLink Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink , http://wiki.oracle.com/page/TopLink TopLink Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink , http://www.nabble.com/EclipseLink-f26430.html EclipseLink Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence -- View this message in context: http://www.nabble.com/Discriminator-issue-tp24382632p24392413.html Sent from the EclipseLink - Users mailing list archive at Nabble.com. _______________________________________________ eclipselink-users mailing list eclipselink-users@... https://dev.eclipse.org/mailman/listinfo/eclipselink-users This message (including any attachments) is intended only for the use of the individual or entity to which it is addressed and may contain information that is non-public, proprietary, privileged, confidential, and exempt from disclosure under applicable law or may constitute as attorney work product. If you are not the intended recipient, you are hereby notified that any use, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, notify us immediately by telephone and (i) destroy this message if a facsimile or (ii) delete this message immediately if this is an electronic communication. Thank you. _______________________________________________ eclipselink-users mailing list eclipselink-users@... https://dev.eclipse.org/mailman/listinfo/eclipselink-users |
|
|
RE: Discriminator issueDid you merge or persist the object before replacing it? Does some other object have a reference to it?
Try setting logging to FINEST to see were it is reference from.
James Sutherland EclipseLink, TopLink Wiki: EclipseLink, TopLink Forums: TopLink, EclipseLink Book: Java Persistence |
|
|
RE: Discriminator issueI couldn't find any other references in the code that creates the
CpCoverage entity and I do have the logging set to FINEST. We have since changed the code to create a CpTransCoverage directly and assign it to the CpTransaction entity, thus eliminating the conversion from CpCoverage to CpTransCoverage and now it works. -----Original Message----- From: eclipselink-users-bounces@... [mailto:eclipselink-users-bounces@...] On Behalf Of James Sutherland Sent: Tuesday, July 14, 2009 8:51 AM To: eclipselink-users@... Subject: RE: [eclipselink-users] Discriminator issue Did you merge or persist the object before replacing it? Does some other object have a reference to it? Try setting logging to FINEST to see were it is reference from. khaskett wrote: > > Right before I do the update, I inspected the CpTransaction object > using the debugger and the cpTransCoverage object is > com.gmrc.jpa.domain.CpTransCoverage@77a877a8. In the code prior to > setting it, we first create the object as a new CpCoverage, then > before setting it we create a CpTransCoverage with a constructor call > passing in the CpCoverage and updating all fields with the values from > that object passed in, not retaining the reference to the actual object. > > Anything else I should be checking? > > -----Original Message----- > From: eclipselink-users-bounces@... > [mailto:eclipselink-users-bounces@...] On Behalf Of James > Sutherland > Sent: Wednesday, July 08, 2009 9:21 AM > To: eclipselink-users@... > Subject: Re: [eclipselink-users] Discriminator issue > > > It looks like you are persisting a CpCoverage (the superclass) not a > CpTransCoverage in your app somewhere. The class name is the default > indicator, which is what it is getting. You should also set a > DiscriminatorValue on CpCoverage, or make it abstract. > > > khaskett wrote: >> >> I have a parent / child relationship where the child is a Entity that >> has a Discriminator annotation. Currently we are seeing this error >> show up in the logs. The Discriminator is based off the COVERAGE_TYPE > field. >> >> [7/7/09 17:02:12:207 CDT] 00000041 SystemOut O [EL Fine]: > 2009-07-07 >> 17:02:12.191--ClientSession(1159218456)--Connection(1268009876)--Thre >> a >> d(Thread[WebContainer >> : 3,5,main])--INSERT INTO CP_COVERAGE (COVERAGE_CODE, >> BUILDING_NUMBER, > >> RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, >> LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, >> PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, >> SORT_SEQ, > >> LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, >> PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, >> PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, >> BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, >> ?, > ?, ?, ?, ?, ?, ?, ?, ?) >> bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, > -1.0, >> null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, >> null, null] >> [7/7/09 17:02:14:691 CDT] 00000041 SystemOut O [EL Warning]: >> 2009-07-07 >> 17:02:14.519--UnitOfWork(1153582274)--Thread(Thread[WebContainer : >> 3,5,main])--Exception [EclipseLink-4002] (Eclipse Persistence >> Services > >> - >> 1.1.1.v20090430-r4097): >> org.eclipse.persistence.exceptions.DatabaseException >> Internal Exception: java.sql.DataTruncation: Data truncation Error >> Code: 0 >> Call: INSERT INTO CP_COVERAGE (COVERAGE_CODE, BUILDING_NUMBER, >> RATING_ORIGINAL_RATE, PREMIUM_ACTUAL, RATING_MODIFIED_RATE, >> LIABILITY_LIMIT, COVERAGE_TYPE, PREMIUM_MIN, PREMIUM_PREVIOUS_PRO, >> PREMIUM_OVERRIDE, STATE_CODE, SUBCOVERAGE_DESC, FORM_NUMBER, >> SORT_SEQ, > >> LOCATION_NUMBER, COVERAGE_CLASS_CODE, PREMIUM_PREVIOUS, >> PREMIUM_MEET_MIN, RATING_RMF, RATED_COVERAGE_FLAG, >> PREMIUM_OVERRIDE_RESET, COVERAGE_DESC, COV_GROUP, ACTION_CODE, >> BLANKET_ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, >> ?, > ?, ?, ?, ?, ?, ?, ?, ?) >> bind => [790, 0, 0.0, 4.0, 0.0, null, CpCoverage, 0.0, 0.0, > -1.0, >> null, null, null, 790, 0, null, 0.0, 0.0, 0.0, N, N, Terrorism, null, >> null, null] >> Query: InsertObjectQuery(com.gmrc.jpa.domain.CpCoverage@71547154) >> >> The problem seems to be that it is trying to insert CpCoverage value >> instead of the correct value into that field. >> >> We have tried setting the COVERAGE_TYPE field explicitly and leaving >> it blank and get the same result. I have tried a very simple example >> of this and it seems to work fine. >> >> CpTransaction cpTrans = new CpTransaction(); >> cpTrans.setTransactionStatus(TransactionStatus.IN_PROGRESS); >> cpTrans.setTransactionType(TransactionType.NEW_BUSINESS); >> cpTrans.setParentTransactionId(0L); >> CpTransCoverage cpTerrorism = new CpTransCoverage(); >> cpTerrorism.setCoverageCode("999"); >> cpTrans.setCpTerrorismCoverage(cpTerrorism); >> >> cpTransactionManager.save(cpTrans); >> >> Setting only the non-nullable fields and then adding the > CpTransCoverage. >> >> @Entity >> @DiscriminatorValue(value = "P") >> public class CpTransCoverage extends CpCoverage { ... >> >> @Entity >> @Table(name = "CP_COVERAGE") >> @Inheritance(strategy = InheritanceType.SINGLE_TABLE) >> @DiscriminatorColumn(name = "COVERAGE_TYPE", discriminatorType = >> DiscriminatorType.STRING, length = 1) public class CpCoverage extends >> BaseDomain implements java.io.Serializable { >> >> .... >> >> Anything overly obvious I am missing here? >> > > ----- http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland http://www.eclipse.org/eclipselink/ EclipseLink , http://www.oracle.com/technology/products/ias/toplink/ TopLink Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink , http://wiki.oracle.com/page/TopLink TopLink Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink , http://www.nabble.com/EclipseLink-f26430.html EclipseLink Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence -- View this message in context: http://www.nabble.com/Discriminator-issue-tp24382632p24479803.html Sent from the EclipseLink - Users mailing list archive at Nabble.com. _______________________________________________ eclipselink-users mailing list eclipselink-users@... https://dev.eclipse.org/mailman/listinfo/eclipselink-users This message (including any attachments) is intended only for the use of the individual or entity to which it is addressed and may contain information that is non-public, proprietary, privileged, confidential, and exempt from disclosure under applicable law or may constitute as attorney work product. If you are not the intended recipient, you are hereby notified that any use, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, notify us immediately by telephone and (i) destroy this message if a facsimile or (ii) delete this message immediately if this is an electronic communication. Thank you. _______________________________________________ eclipselink-users mailing list eclipselink-users@... https://dev.eclipse.org/mailman/listinfo/eclipselink-users |
| Free embeddable forum powered by Nabble | Forum Help |