On Fri, Feb 21, 2020 at 2:12 PM Deepak Sharma <sharma.dee...@salesforce.com.invalid> wrote:
> > We have a use case where we need to have two separate PreparedStatement > objects (one with RetryPolicy and the other without any retry policy) for > the same query string. And when we try to create two separate > PreparedStatements, we see only one PreparedStatement getting retained (the > previous PreparedStatement gets overridden by the last PreparedStatement). > We looked at the code implementation and see that method > Cluster.addPrepared is looking at some kind of MD5 hash for the query and > it overrides the old PreparedStatement with the new PreparedStatement. > > To overcome this behavior we are creating two separate queries (the second > query has an extra space at the end compared to first query) to distinguish > them so that we end up getting two prepared statements. This hack works but > we are too comfortable with this. Is there a better way to achieve this? > > More details in the following link with code: > > https://stackoverflow.com/questions/60198114/how-to-get-two-preparedstatement-objects-for-the-same-query-string > > Let me know if you have any questions. > Have you considered using clone() (inherited from java.lang.Object) on the object returned by session.prepare() and then setting the policies differently on both copies? -- Alex