Composite Ids
rengar Feb 24, 2006 4:56 AMI make mini example seams app (typical user-rol tables).
The source code was generated with hibernate-tools beta4
and was fixed some errors of generator.
usuario (usuario,password) --> Id (usuario)
rol(rol) --> Id (rol)
usuario_rol(usuario, rol) --> Composite id (usuario, rol)
Jboss throws this error when I go to "http://localhost:8080/seamapp/editUsuarioRol.jsf" :
10:29:27,361 ERROR [[/seamapp]] Cannot set value for expression '#{usuariorolEditor.instance.id}' to a new value of type java.lang.String
javax.faces.el.EvaluationException: Cannot set value for expression '#{usuariorolEditor.instance.id}' to a new value of type java.lang.String
at org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java
:304)
.
.
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolv
erImpl.java:368)
... 33 moreThe source code composite id :
// Generated 23-feb-2006 17:09:37 by Hibernate Tools 3.1.0.beta4
import javax.persistence.Column;
import javax.persistence.Embeddable;
/**
* UsuarioRolId generated by hbm2java
*/
@Embeddable
public class UsuarioRolId implements java.io.Serializable {
// Fields
private String usuario;
private String rol;
// Constructors
/** default constructor */
public UsuarioRolId() {
}
/** full constructor */
public UsuarioRolId(String usuario, String rol) {
this.usuario = usuario;
this.rol = rol;
}
// Property accessors
@Column(name="usuario", unique=false, nullable=false, insertable=true, updatable=true, length=20)
public String getUsuario() {
return this.usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
@Column(name="rol", unique=false, nullable=false, insertable=true, updatable=true, length=20)
public String getRol() {
return this.rol;
}
public void setRol(String rol) {
this.rol = rol;
}
public boolean equals(Object other) {
if ( (this == other ) ) return true;
if ( (other == null ) ) return false;
if ( !(other instanceof UsuarioRolId) ) return false;
UsuarioRolId castOther = ( UsuarioRolId ) other;
return ( (this.getUsuario()==castOther.getUsuario()) || ( this.getUsuario()!=null && castOther.getUsuario()!=null && this.getUsuario().equals(castOther.getUsuario()) ) )
&& ( (this.getRol()==castOther.getRol()) || ( this.getRol()!=null && castOther.getRol()!=null && this.getRol().equals(castOther.getRol()) ) );
}
public int hashCode() {
int result = 17;
result = 37 * result + ( getUsuario() == null ? 0 : this.getUsuario().hashCode() );
result = 37 * result + ( getRol() == null ? 0 : this.getRol().hashCode() );
return result;
}
}
This error is throwing when i select one rol for one user.
I have in "editUsuarioRol.jsf" one inputText box for id.
How introduce "id" in this box if "id" is a object not a String ???