Ojonugwa Jude Ochalifu
Ojonugwa Jude Ochalifu

Reputation: 27237

"DataNucleus Enhancer completed with an error"

Am trying to create a model class to store an Entity in Google App Engine using Eclipse.But when i save my work i get the error message:

org.datanucleus.metadata.MetaDataManager initialiseFileMetaDataForUse.
SEVERE: Class "com.packagename.classname" has been specified with an object-id class javax.jdo.identity.StringIdentity yet no fields have been identified as primary key fields. Please notate using the "primary-key" tag against the fields that should be considered part of the primary key.

If my understanding of JPA is correct, i do not need a primary-key for an entity since i already have a @Id tag.Here is my class.

@Entity
  public class MyCLassName {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private static String userName;

private static String location;
private static Date dateOfBirth;
private static int age;
private static String gender;
private static String teamName;
private static int weight;





//Constructor with arguments
public MyClassName(String userName, String location, String gender, int age, Date DOB, int weight) {
    MyClassName.userName = userName;
    MyClassName.location = location;
    MyClassName.gender = gender;
    MyClassName.age=age;
    MyClassName = DOB;
    MyClassName.weight = weight;

}
//setter methods
public static void setUserName(String userName) {
    MyClassName.userName = userName;
}

public static void setLocation(String location) {
    MyClassName.location = location;
}

public static void setGender(String gender) {
    MyClassName.gender = gender;
}

public static void setAge(int age) {
    MyClassName.age = age;
}

public static void setDateOfBirth(Date dateOfBirth) {
    MyClassName.dateOfBirth = dateOfBirth;
}

public static void setWeight(int weight) {
     MyClassName.weight = weight;
}

//getter methods
public static String getUserName() {
    return userName;
}

public static int getWeight() {
    return weight;
}

public static String getLocation() {
    return location;
}

public static String getGender() {
    return gender;
}

public static String getTeamName() {
    return teamName;
}

public static Date getDateOfBirth() {
    return dateOfBirth;
}

public static int getAge() {
    return age;
}

    }

What exactly am i doing wrong here?

Upvotes: 0

Views: 164

Answers (1)

Martin Berends
Martin Berends

Reputation: 4178

Your understanding of JPA is partially correct. You do not need to assign the primary key because you have used the @Id and @GeneratedValue annotation. The JPA implementation will automatically generate the primary key value as a long integer. However it still needs a field in which to store this ID value. It is trying to do that in userName. See Java Tutorial ID Generation Type: IDENTITY for example.

Upvotes: 1

Related Questions