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
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user