Java 在Oracle 10g中保存实体时发生JPA异常
我正在为我的应用程序使用Play framework 1.2.4,但例外情况似乎与JPA有关 我在Oracle 10g数据库中有一个Java 在Oracle 10g中保存实体时发生JPA异常,java,database,oracle,jpa,playframework,Java,Database,Oracle,Jpa,Playframework,我正在为我的应用程序使用Play framework 1.2.4,但例外情况似乎与JPA有关 我在Oracle 10g数据库中有一个复合键,因此我对JPA操作使用了@IdClass方法 以下是主键类: public class ItemDetailsPK implements Serializable { public String itemId; public String itemName; } @Entity @IdClass(ItemDetailsPK.class) @Tabl
复合键
,因此我对JPA操作使用了@IdClass
方法
以下是主键
类:
public class ItemDetailsPK implements Serializable {
public String itemId;
public String itemName;
}
@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 class ItemDetailsPK implements Serializable {
public String itemId;
public String itemName;
}
@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
}
}
例外消息是:
缺少复合Id属性:models.ItemDetails.ItemId(在IdClass ItemDetailsPK中定义)
*注:*
调试代码时我发现了一件事:当我将鼠标悬停在addItem
方法的itemDetails
参数上时,我可以在随附的对象中看到此异常:com.sun.jndi.invocationexception发生在调用该方法时
更新
如果在try/catch
块中环绕整个addItem
方法,则保存操作工作正常,但仍会在控制台中为e.printStackTrace()显示异常消息代码>在catch块中
请告诉我如何解决此异常。我只是想知道为什么异常消息中会出现“ItemDetails.ItemId”(ItemId中的大写字母I)?是的,这是我在异常发生时的第一次观察。我用大写的I
搜索整个工作区,但没有得到任何结果。此外,如果我用一个try/catch
块包围整个方法,那么save也可以工作,但是异常仍然会显示在控制台中。请查看以上更新的帖子,如果你对如何解决这个问题有任何想法,请告诉我。