Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

eclipse Duplicate generator named "ID_GENERATOR" defined in this persistence unit

I'm currently having this issue which I don't have before I migrated to eclipse-jee-kepler. What I have:

I have 2 classes, base and the extending class:

public abstract class BaseEntity implements Serializable {
    @Id
    @GeneratedValue(generator = "ID_GENERATOR")
    @Column(name = "ID")
    private Long id;
}

@Entity
@Table(name = "CUSTOMER")
@SequenceGenerator(name = "ID_GENERATOR", sequenceName = "CUSTOMER_SEQ")
public class Customer extends BaseEntity {
}

Before I don't have this validation error but now eclipse is throwing it. I can compile, build and deploy successfully but the error marker is making it hard to pinpoint the compile errors when you really have one.

The error seems obvious, it's because I have ID_GENERATOR on all the extending classes. My question: 1.) Can I ignore this error? 2.) Any work around? Possibly using a different approach.

like image 333
czetsuya Avatar asked Jan 06 '14 00:01

czetsuya


3 Answers

I figured the problem, it was more of an eclipse JPA validation setting. To disable:

  1. Select Window » Preferences
  2. Expand Java Persistence » JPA » Errors/Warnings
  3. Click Queries and generators
  4. Set Duplicate generator defined to: Ignore
  5. Click OK to apply changes and close the dialog

You can also set the value to Warning instead of Ignore.

like image 80
czetsuya Avatar answered Sep 23 '22 03:09

czetsuya


For MyEclipse

1.Windows->Preferences

2.Myeclipse->Validation->JPA

3.Queries and generators

Generators is not defined in the persistence unit;

like image 45
Kevin Avatar answered Sep 19 '22 03:09

Kevin


The generator's name must to be unique by generator and it can be referenced by one or more classes.

The javadoc clearly says:

(Required) A unique generator name that can be referenced by one or more classes to be the generator for primary key values.

According to the java JPA 2.1 specification (SequenceGenerator Annotation of the JPA 2.1 - section 11.1.48):

The scope of the generator name is global to the persistence unit (across all generator types)

like image 24
Ariel Carrera Avatar answered Sep 20 '22 03:09

Ariel Carrera