j'ai le message exception: "Class [.....Product] has two @GeneratedValues: for fields [T_PRODUCT.id] and [id]. Only one is allowed.
Ce message apparait dans la console glassfish au déploiement et lor du lancement de yaps-test dans les junit.
Extrait classe Product:
Code : Tout sélectionner
@Entity
@NamedQueries( {
@NamedQuery(name = "Product.findAll", query="select p from Product p"),
@NamedQuery(name = "Product.findAllInCategory", query="select p from Product p where p._category._id = :categoryId")
})
@Table(name = "T_PRODUCT")
public final class Product extends DomainObject implements Serializable {
// ======================================
// = Attributes =
// ======================================
@Id
@Column(name = "id", length = 10)
@TableGenerator(name="TABLE_GEN_PRODUCT", table="T_COUNTER", pkColumnName="name",
valueColumnName="value", pkColumnValue="Product")
@GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN_PRODUCT")
private String _id;
@Column(name = "name", nullable = false, length = 50)
private String _name;
@Column(name = "description", nullable = false, length = 255)
private String _description;
@ManyToOne
@JoinColumn(name="category_fk")
private Category _category;
@OneToMany(mappedBy="_product")
private Collection<Item> _items;
Code : Tout sélectionner
@Entity
@NamedQueries( {
@NamedQuery(name = "Item.findAll", query="select i from Item i"),
@NamedQuery(name = "Item.findAllInProduct", query="select i from Product i where i._product._id = :productId"),
@NamedQuery(name = "Item.search", query="select i from Item i where (i._id LIKE '%:keyword%') OR (id._name like '%:keyword%'")
})
@Table(name = "T_ITEM")
public final class Item extends DomainObject implements Serializable {
// ======================================
// = Attributes =
// ======================================
@Id
@Column(name = "id", length = 10)
@TableGenerator(name="TABLE_GEN_ITEM", table="T_COUNTER", pkColumnName="name",
valueColumnName="value", pkColumnValue="Item")
@GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN_ITEM")
private String _id;
@Column(name = "name", nullable = false, length = 50)
private String _name;
@Column(name = "unitCost")
private double _unitCost;
@Column(name = "imagePath", nullable = true, length = 255)
private String _imagePath;
@ManyToOne
@JoinColumn(name="product_fk")
private Product _product;
Code : Tout sélectionner
@Embeddable
public final class Category extends DomainObject implements Serializable {
// ======================================
// = Attributes =
// ======================================
@Id
@Column(name = "id", length = 10)
@TableGenerator(name="TABLE_GEN_CATEGORY", table="T_COUNTER", pkColumnName="name",
valueColumnName="value", pkColumnValue="Category")
@GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN_CATEGORY")
private String _id;
@Column(name = "name", nullable = false, length = 50)
private String _name;
@Column(name = "description", nullable = false, length = 255)
private String _description;
@OneToMany(mappedBy="_category")
private Collection<Product> _products;