Hi,

I'am working on JBoss-4.0.5.GA with EJB3 on MySQL.
Why a @ManyToOne join result in a tinyblob instead of a foreign-key?

My entities are a Baseentity and some derived classes with such @ManyToOne 
connections.

Here the BaseEntity
@MappedSuperclass
  | public abstract class BaseEntity implements Serializable{
  |     
  |     @Column(name="__UUID__", unique=true, nullable=false, updatable=false, 
length=36)
  |     protected String internalUUID;
  |     
  |     
  |     protected Long id;
  |     protected Integer version;
  |     
  |     @Id @GeneratedValue
  |     protected Long getId(){
  |             return id;
  |     }
  | 
  |     protected void setId(Long id){
  |             this.id = id;
  |     }
  |     
  |     @Version
  |     protected Integer getVersion(){
  |             return version;
  |     }
  |     public void setVersion(Integer version) {
  |             this.version = version;
  |     }
  |     
  |     public BaseEntity(){
  |             this.internalUUID = java.util.UUID.randomUUID().toString();
  |     }
  |     
  |     @Override
  |     public boolean equals(Object o) {
  |             return (o == this || (o instanceof BaseEntity && 
internalUUID.equals(((BaseEntity)o).internalUUID)));
  |     }
  |     
  |     public String toString() {
  |             return getClass().getSimpleName() + " Id: " + getId();
  |     }
  |     
  |     @Override
  |     public int hashCode() {
  |             return internalUUID.hashCode();
  |     }
  | 
  | 
  | }

a derived class
@Entity
  | @Name("generation")
  | @Table(name="generations")
  | @SuppressWarnings("unused")
  | public class Generation extends BaseEntity {
  | 
  |     /**
  |      * 
  |      */
  |     private static final long serialVersionUID = 6004105498293729499L;
  |     private String name;
  |     
  |     /**
  |      * 
  |      */
  |     public Generation() {
  |             // TODO Auto-generated constructor stub
  |     }
  |     public String getName() {
  |             return name;
  |     }
  |     public void setName(String name) {
  |             this.name = name;
  |     }
  | }

and the class with manytoone relation
@Entity
  | @Name("specialrelease")
  | @Table(name="specialreleases")
  | @SuppressWarnings("unused")
  | public class SpecialRelease extends BaseEntity {
  |     
  |     /**
  |      * 
  |      */
  |     private static final long serialVersionUID = -8813581197028149761L;
  |     static final int NOTRELEASED    = 1;
  |     static final int NOTPERMITTED   = 2;
  |     static final int ONDEMAND               = 3;
  |     static final int DECLINED               = 4;
  |     static final int EXPIRED                = 5;
  |     static final int NOTVALID               = 6;
  | 
  |     
  |     //@NotNull
  |     private Long requestNumber;
  |     
  |     
  |     private String description;
  |     
  |     @ManyToOne
  |     private Generation generation;
  |     
  |     
  |     /**
  |      * 
  |      */
  |     public SpecialRelease() {
  |             // TODO Auto-generated constructor stub
  |             status = NOTRELEASED; //Genemhmigungsprozess noch nicht 
gestartet
  |     }
  | 
  |     
  |     public Generation getGeneration() {
  |             return generation;
  |     }
  | 
  |     public void setGeneration(Generation generation) {
  |             this.generation = generation;
  |     }
  | }
  | 

Even I tried to put "@JoinColumn(name="generation_id", 
referencedColumnName="id")" to the relation the result is the same.


An idea what I can to to avoid the tinyblob?


Thanks
Andreas

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4022876#4022876

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4022876
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to