Sequencia em DBLink + Hibernate

1 resposta
vhuzalo

Pessoal,

Estou acessando algumas tabelas em outro banco através de um dblink e uma delas eu preciso persistir os dados.
Para que eu possa incluir utilizando a sequencia existente eu preciso pegar o proximo valor dela por exemplo:

Nome_Sequencia.nextval@Nome_DBLink

Porém o hibernate está executando assim:

Nome_Sequencia@Nome_DBLink.nextval

Alguém já passou por este problema?

1 Resposta

vhuzalo

Pessoal, depois de apanhar muito encontrei a solução:

Criei uma nova classe que extende Oracle9Dialect, e sobrescrevi o seguinte método:

@Override
	public String getSequenceNextValString(String sequenceName) {
		if (sequenceName.contains("@")){
			int local = sequenceName.lastIndexOf("@");
			String sequencia = sequenceName.substring(0, local);
			String dbLink = sequenceName.substring(local + 1);
			return "select "+ sequencia+".nextval@"+dbLink+" from dual";
		}else{
			return super.getSequenceNextValString(sequenceName);
		}
	}

Espero que seja útil, caso alguém passe por este problema!
:thumbup:

Criado 27 de agosto de 2007
Ultima resposta 29 de ago. de 2007
Respostas 1
Participantes 1