Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Oracle 10g中保存实体时发生JPA异常_Java_Database_Oracle_Jpa_Playframework - Fatal编程技术网

Java 在Oracle 10g中保存实体时发生JPA异常

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

我正在为我的应用程序使用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)
@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也可以工作,但是异常仍然会显示在控制台中。请查看以上更新的帖子,如果你对如何解决这个问题有任何想法,请告诉我。