我正在为我的应用程序使用 Play framework 1.2.4,但异常似乎与 JPA 有关。
我的 Oracle 10g 数据库中有一个Composite Key
,因此我使用@IdClass
JPA 操作的方法。
下面是Primary Key
课程:
public class ItemDetailsPK implements Serializable {
public String itemId;
public String itemName;
}
下面是Entity
课程:
@Entity
@IdClass(ItemDetailsPK.class)
@Table(name="ITEM_DETAILS")
public class ItemDetails extends GenericModel {
@Id
@Column(name="ITEM_ID")
public String itemId;
@Id
@Column(name="ITEM_NAME")
public String itemName;
以下是我用于保存项目的方法:
public static void addItem(ItemDetails itemDetails){
// Saving the Item
itemDetails.save(); // Throwing Exception
}
}
异常消息是:
Composite Id Property missing:models.ItemDetails.ItemId (Defined in IdClass ItemDetailsPK)
*注:*
我在调试代码时发现的一件事:当我将鼠标悬停在方法的itemDetails
参数上时addItem
,我可以在附加的对象中看到这个异常:com.sun.jndi.invocationexception 调用方法时发生了
更新
如果我将整个addItem
方法包围在一个try/catch
块中,则保存操作工作正常,但异常消息仍会显示在控制台e.printStackTrace();
中的 catch 块中。
请让我知道如何解决此异常。