You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by chintan4181 <ch...@gmail.com> on 2011/09/30 19:13:56 UTC

Failing while inserting row into db table

Hi,

I have a below relationship between entities

@Table(name = "Table1")
@SecondaryTable(name = "Table2", pkJoinColumns = @PrimaryKeyJoinColumn(name
= "Table1_ID"))
@Entity
public class Table1DO{

@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "Table1_ID")
	private Long table1PrmryKey;

@OneToOne
	@JoinColumn(name = "Table1_ID", referencedColumnName = "Table1_ID")
	private Table2 table2DO;

//other attributes and it's accessor methods 
}

@Table(name = "Table2")
@Entity
public class Table2DO{

@Id
	@Column(name = "Table1_ID")
	private Long table2ID;

}

When we persist Table1, it fails saying Caused by:
org.apache.openjpa.lib.jdbc.ReportingSQLException: Cannot insert explicit
value for identity column in table 'Table1' when IDENTITY_INSERT is set to
OFF. {prepstmnt 73139292 INSERT INTO Table1 (Table1_ID, ............) VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
[params=?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?]} [code=544, state=S0001]
	at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:273)
	at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:249)
	at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:70)
	at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1095)
	at
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:285)
	at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1702)
	at
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
	at
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
	... 127 more
NestedThrowables:

<openjpa-2.0.2-SNAPSHOT-r422266:1032678 fatal store error>
org.apache.openjpa.persistence.EntityExistsException: Cannot insert the
value NULL into column 'Table1_ID', table "Table2"; column does not allow
nulls. INSERT fails. {prepstmnt 1844866550 INSERT INTO Table2(Table1_ID,
............) VALUES (?, ?, ?, ?, ?, ?) [params=?, ?, ?, ?, ?, ?]}
[code=515, state=23000]

We want to first insert values into table1 so that value of primary
key(table1_Id) can be assigned to table2.table1_id column. how to achieve
that?

Thanks
unmarshall

--
View this message in context: http://openjpa.208410.n2.nabble.com/Failing-while-inserting-row-into-db-table-tp6848586p6848586.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.