-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Probleme mit Sequence in Hibernate mit DB2 8.1 unter zOS
PostPosted: Thu Jul 08, 2010 5:43 am 
Newbie

Joined: Thu Jul 08, 2010 5:24 am
Posts: 1
Hallo,

ich habe ein Problem unter mit Hibernate eine Sequence unter DB2 Version 8.1 zOS Einzubinden.

In der Klasse habe ich folgendes Angegeben:
@Entity
@SequenceGenerator(name = "mySequence", sequenceName = "DB2_SEQUENCE", initialValue = 1)
@Table(name = "MyTable")
public class MyClass implements Serializable {

/** Serial Version UID. */
@Transient
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mySequence")
@Column(name = "FID", nullable = false)
private int fehlerId;


Als Dialect in der Konfiguration habe ich <property name="dialect">org.hibernate.dialect.DB2390Dialect</property> angegeben.

Leider Bekomme ich jedoch folgenden Fehler:
com.ibm.db2.jcc.b.co: DB2 SQL Error: SQLCODE=-142, SQLSTATE=42612, SQLERRMC=null, DRIVER=3.53.70

Als SQL wird folgendes von Hibernate Ausgegeben:
> values
> nextval for SCHEMA.mySequence
> Hibernate:
>
> values
> nextval for mySequence

Im Internet habe ic nicht viel gefunden, ausser das es nach der angabe des Richtigen Dialects Funktioniert hat. Leider Funktioniert es bei mir nicht.
Kennt jemand das Problem und hat eventuell eine Lösung?

Danke...


Top
 Profile  
 
 Post subject: Re: Probleme mit Sequence in Hibernate mit DB2 8.1 unter zOS
PostPosted: Tue Aug 03, 2010 7:51 am 
Newbie

Joined: Tue Aug 03, 2010 6:44 am
Posts: 1
Hallo,

ja, leider ist der DB2390Dialect nicht vollständig implementiert.
Du musst die Klasse ableiten und für die Sequence einen Select bauen.
Wir haben das so gelöst:
package de.kfw.basis.errorhandling.workaround;

import org.hibernate.dialect.DB2390Dialect;

/**
* The Class DB2390DialectKW.
* <br />
* Subclasses the org.hibernate.dialect.DB2Dialect
* in order to fix the problem with the getSequenceNextValString(String sequenceName)
* <br />
* @see https://forums.hibernate.org/viewtopic. ... 23b01cb7c0
*/
public class DB2390DialectKW extends DB2390Dialect {

/**
* Gets the sequence next val string.
* @param sequenceName the sequence name
* @return the sequence next val string
* @see org.hibernate.dialect.DB2Dialect#getSequenceNextValString(java.lang.String)
*/
public String getSequenceNextValString(String sequenceName) {
return "SELECT nextval FOR " + sequenceName + " FROM sysibm.sysdummy1";
}
}


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.