From: <leg...@at...> - 2003-10-04 09:10:23
|
The following comment has been added to this issue: Author: Gavin King Created: Sat, 4 Oct 2003 4:10 AM Body: DatabaseMetadata.supportsGetGeneratedKeys() is not available in JDBC 2.0. Otherwise the patch looks reasonable (though it appears that some stuff might be able to be refactored up to AbstractEntityPersister, perhaps). --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Unassigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Sat, 4 Oct 2003 1:05 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-10-04 13:40:20
|
The following comment has been added to this issue: Author: David Morris Created: Sat, 4 Oct 2003 8:39 AM Body: I will change the call to use reflection and resubmit the patch. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Unassigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Sat, 4 Oct 2003 1:05 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-10-25 20:44:56
|
The following comment has been added to this issue: Author: David Morris Created: Sat, 25 Oct 2003 3:40 PM Body: I uploaded the new patch. For some reason Eclipse and Ant both built the Settings and SettingsFactory patch as completely changed but in a comparision view they look right. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Sat, 25 Oct 2003 3:38 PM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-04 17:30:14
|
The following comment has been added to this issue: Author: Gavin King Created: Tue, 4 Nov 2003 11:29 AM Body: I am being slow on this one, (a) because its a bit hard to see exactly what changed from the patch and (b) it competes with HB-447. 380 is currently winning, 'cos I couldn't make the 447 approach work on MySQL. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-04 17:30:14
|
The following comment has been added to this issue: Author: Gavin King Created: Tue, 4 Nov 2003 11:29 AM Body: Ah, I mean HB-437! --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-04 17:45:14
|
The following comment has been added to this issue: Author: David Morris Created: Tue, 4 Nov 2003 11:44 AM Body: I am not sure I follow your comments, but I have tested this quite a bit with MySQL and it certainly works. It is possible that during one of the rebuilds I dropped something but I will retest against MySQL, SQL Server, and DB2 if it helps. My test uses a DAO layer that I can factor out if you would like to see what I tested with. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-04 17:50:14
|
The following comment has been added to this issue: Author: Gavin King Created: Tue, 4 Nov 2003 11:49 AM Body: I said HB-437 does not work on MySQL. This will work fine. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-05 01:27:14
|
The following comment has been added to this issue: Author: John Kristian Created: Tue, 4 Nov 2003 7:26 PM Body: getgeneratedkeys3.patch doesn't work with Microsoft SQL Server and NetDirect's JSQLConnect driver <http://www.j-netdirect.com/JSQLConnect/JSQLFeatures.html>, I find. That is, Hibernate gets the identifier of a row inserted by a trigger, instead of the row whose insertion it requested. Perhaps it's a bug in the driver, or perhaps I botched the patch. I'm investigating. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-05 03:37:14
|
The following comment has been added to this issue: Author: David Morris Created: Tue, 4 Nov 2003 9:36 PM Body: It is a bug in the driver if you did not get back all generated keys. Here is the spec: "Calling ResultSet.getMetaData on the ResultSet object returned by getGeneratedKeys will produce a ResultSetMetaData object that can be used to determine the number, type and properties of the generated keys. In some cases, such as in an insert select statement, more than one key may be returned. The ResultSet object returned by getGeneratedKeys will contain a row for each key that a statement generated. If no keys are generated, an empty result set will be returned. The concurrency of the ResultSet object returned by getGeneratedKeys must be CONCUR_READ_ONLY. The type of the ResultSet object must be either TYPE_FORWARD_ONLY or TYPE_SCROLL_INSENSITIVE." You should have received all keys generated with metadata describing the keys. I can see a problem with the spec because the metadata returned from a result set can't cover the results of more than one SQL statement and the specification says "the ResultSet object" infering that there is only one result set therefore one type. That probably doesn't help much. As a workaround, can you add your records in a pre-insert key? it shouldn't be too bad except that you may need to delete a constraint (that could be moved to your trigger). --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-05 07:55:15
|
The following comment has been added to this issue: Author: John Kristian Created: Wed, 5 Nov 2003 1:54 AM Body: It's a bug in the driver, I think; the driver appears to be using @@IDENTITY to implement getGeneratedKeys. I filed a bug report with NetDirect; we'll see what they say. I've unvoted for this patch, now that I understand it depends on a bleeding-edge feature of JDBC. Um, what do you mean by "add your records in a pre-insert key?" I don't understand. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-05 17:05:08
|
The following comment has been added to this issue: Author: David Morris Created: Wed, 5 Nov 2003 10:57 AM Body: I meant to say pre-insert trigger. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Tue, 4 Nov 2003 12:06 AM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-06 01:05:14
|
The following comment has been added to this issue: Author: John Kristian Created: Wed, 5 Nov 2003 7:04 PM Body: Re: Can you add your records in a pre-insert trigger? Microsoft SQL Server does not support pre-insert triggers. :-( --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Wed, 5 Nov 2003 1:36 PM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-06 13:22:14
|
The following comment has been added to this issue: Author: Gavin King Created: Thu, 6 Nov 2003 7:21 AM Body: Patch is looking good now. Thanks everyone! But I don't think I'll apply it until after 2.1 final. (Which is soon, I hope.) Lets make it a feature for 2.0.1. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Wed, 5 Nov 2003 1:36 PM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |
From: <leg...@at...> - 2003-11-06 13:22:15
|
The following comment has been added to this issue: Author: Gavin King Created: Thu, 6 Nov 2003 7:21 AM Body: Patch is looking good now. Thanks everyone! But I don't think I'll apply it until after 2.1 final. (Which is soon, I hope.) Lets make it a feature for 2.1.1. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-380 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-380 Summary: Use ResultSet.getGeneratedKeys() when supported by JDBC driver Type: Improvement Status: Assigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 Assignee: Gavin King Reporter: David Morris Created: Sat, 4 Oct 2003 1:02 AM Updated: Wed, 5 Nov 2003 1:36 PM Environment: JDBC 3.0 Drivers with 1.4 JDKs. MySql and DB2 both have JDBC drivers that support get generated keys. Description: Retrieve ResultSet of natively generated keys after inserting records into databases that provide this support. Performance is genrally better with this technique. The code change should be backward compatable with 1.3 JREs and older JDBC drivers. --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |