1
我正在爲我的項目使用MySQL的datanucleus。當我嘗試堅持一個對象時,我收到異常Data Nucleus-MySql不正確的表定義;只能有一個自動列,它必須被定義爲一個關鍵錯誤
不正確的表定義;只能有一個自動柱,它 必須定義爲一個關鍵的錯誤
我的目標設計如下
Plan.class
public class Plan implements Serializable {
private static final long serialVersionUID = 6653821147113556490L;
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Column(name = "ID")
private Long id;
@Persistent(column = "NAME")
private String planName;
@Persistent(defaultFetchGroup = "true")
@Element(column = "FEATURES")
@Unowned
private Set<PlanFeature> planFeatures;
@Persistent(column = "CURRENCY_TYPE")
private String currency = "USD";
@Persistent(defaultFetchGroup = "true")
@Element(column = "CURRENCIES")
@Unowned
private Set<Currency> currencies;
@Persistent(column = "COST")
private BigDecimal cost = new BigDecimal(0);
@Persistent(column = "COST_INR")
private BigDecimal costINR = new BigDecimal(0);
@Persistent(column = "DISCOUNT")
private BigDecimal discount = new BigDecimal(0);
@Persistent(column = "TEST_TAKERS_ALLOWED")
private Integer testTakersAllowed;
// How many clients have opted for this plan
@Persistent(column = "OPTED_OWNERS")
private Long planOwners = 0L;
@Persistent(column = "PLAN_LEVEL")
private Integer level;
......//Getters and setters
}
PlanFeature.class
public class PlanFeature {
@Persistent(column = "NAME")
private String name;
@Persistent(column = "VALUE")
private String value;
//Getters and setters
}
貨幣類別
public class Currency implements Serializable {
private static final long serialVersionUID = 8814737520234672816L;
@Persistent(column = "ID", valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent(column = "COUNTRY")
private String country;
@Persistent(column = "CURRENCY")
private String currency;
//Getters and setters
}
我沒有在任何類中使用多個ID。請幫幫我。
如果你要引用一些異常消息,然後發佈異常和堆棧跟蹤,然後人們可以看到異常來自哪裏......也許你的數據庫? –