Hello folks,
In fact, you should not define an extra class attribute for the discriminator 
column. Probably this is the cause of your error.
So, your class might look like this:

@Entity @Table(name="products")
  | @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
  | @DiscriminatorColumn(name="type_product")
  | public class Product implements Serializable {
  |      private String field1;
  |      private String field2;
  |     ...
  |      //No typeProduct attribute here!!!!
  | 
  | }

And then, in your Product based class(es) (EletronicProduct for instance), you 
would have:

@Entity @DiscriminatorValue("E")
  | public class ElectroProduct extends Product {
  | 
  |   private String field1;
  | ...
  | }

I was having a similar error but using the "Joined-Subclass" approach.
After reading your posts I found out that I really had a repeated column, but 
It was not that obvious because it was coming by inheritance. So, in this case, 
you shouldn't create "Id" attributes for your based classes because they 
already inherit one from the base class. That's when I was getting the 
"Repeated column in mapping for entity".
FYI,  my classes look like these (doing in the "Joined-Subclass" way):

@Entity @Table(name="products")
  | @Inheritance(strategy=InheritanceType.JOINED)
  | public abstract class Product implements Serializable {    
  |     protected Integer id;
  |     protected String name;
  | ...
  | }

@Entity @Table(name="products_category1")
  | @PrimaryKeyJoinColumn(name="idCat1", referencedColumnName="id")
  | public class ProductsCategory1 extends Products implements Serializable {
  |     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  |     private Long idCat1;
  |     @Column(name="field1")
  |     private double field1;
  |     ...
  | }
  | 
@Entity @Table(name="products_category2")
  | @PrimaryKeyJoinColumn(name="idCat2", referencedColumnName="id")
  | public class ProductsCategory2 extends Products implements Serializable {
  |     @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  |     private Long idCat2;
  |     @Column(name="field1")
  |     private double field1;
  |     ...
  | }


So. as inheritance concept says, ProductCategory1 and ProductCategory1 will 
inherit "id" attribute and thus,
the lines
 @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  |     private Long idCat1;

and

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  |     private Long idCat2;
 
will cause this problem to occur.


I hope I have helped

Neilson

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

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

Reply via email to