Hibernate ignorar atributo nao @Transient ao persistir

Olá.

Preciso que o hibernate ignore um atributo não @Transient ao persistir.

Pq não @Transient?
Pq numa situação preciso que este objeto passe pela rede, ou seja, ele será serializado e o processo de serialização também ignora @Transient.
Mas nesse caso quero o atributo vá junto.

Ou seja, se coloco @Transient ele não é persistido, o correto.
Mas ele não passa pela rede.

Se não coloco @Transient, ele será persistido, errado.
Por outro lado ele passará pela rede.

Uma solução seria criar uma classe, herdando a primeira, configurando essa classe para serializar o atributo marcado como @Transient.
Essa classe seria utilizada na serialização do objeto pela rede.

[code]class A implements Serializable {
@Transient
protected Object obj;
}

class B extends A {
private void writeObject(ObjectOutputStream os) {
try {
os.defaultWriteObject();
os.writeObject(obj);
} catch (Exception e) { e.printStackTrace(); }
}
private void readObject(ObjectInputStream is) {
try {
is.defaultReadObject();
this.obj = is.readObject();
} catch (Exception e) { e.printStackTrace(); }
}
}[/code]
Outra solução, seria setar o atributo para null, antes da chamada do hibernate.

Obrigado pelas dicas heatcold. Me deu algumas ideias.

A primeira opção é complicado. Muitas classes.
Apenas se usasse uma manipulação de bytecode para gerar essas classes em runtime. Mas isto tb teria problemas, pois o outro lado, a outra JVM não teria essas novas classes geradas em runtime.

A segunda opção não é viável pois não existe coluna para este atributo na tabela, não é questão de ser ou não persistido, mas sim não há onde persistir. Dai o hibernate estoura pois a coluna não existe.

Uma outra forma de fazer o que você quer seria escrever manualmente o insert.

ja tentou colocar os atributos insertable=false, updatable=false na anotação @JoinColumn?

Bem, pensei que a semântica fosse diferente, do modificador transient, do java, para indicar que o atributo não vai ser serializável, e o @Transient do JPA que é para informar que o atributo não vai ser persistente, estou errado? Tem certeza @Transient do JPA também funcionapara indicar que o atributo não irá ser serializável? … De todo modo, eu uso o @Transient no método get do objeto, e nunca tive problemas com a serialização.