Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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 是否可以为JPA中的列设置默认空值,如果可以,如何使用注释来实现?_Java_Jpa - Fatal编程技术网

Java 是否可以为JPA中的列设置默认空值,如果可以,如何使用注释来实现?

Java 是否可以为JPA中的列设置默认空值,如果可以,如何使用注释来实现?,java,jpa,Java,Jpa,直到现在我试过这个,我得到了例外 @Column(name = "price", nullable = "true") private Double PriceAmount ;. 原因:org.apache.openjpa.persistence.ArgumentException:com.model.entities.jpa.Price.PriceAmount的字段“com.model.entities.jpa”。Price@1433836不能将“”设置为“null”值。 位于org.apa

直到现在我试过这个,我得到了例外

@Column(name = "price", nullable = "true")
private Double PriceAmount ;.
原因:org.apache.openjpa.persistence.ArgumentException:com.model.entities.jpa.Price.PriceAmount的字段“com.model.entities.jpa”。Price@1433836不能将“”设置为“null”值。
位于org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.insert(HandlerFieldStrategy.java:133)
位于org.apache.openjpa.jdbc.meta.FieldMapping.insert(FieldMapping.java:623)
位于org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.insert(AbstractUpdateManager.java:239)
位于org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:166)
位于org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:97)
位于org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)

JPA列只能在表列也为空时设置为空。请签入数据库并更改它

JPA列只能在表列也为null时设置为null。请签入数据库并更改它

使用注释

 Caused by: <openjpa-2.1.2-SNAPSHOT-r422266:1497841 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Field "com.model.entities.jpa.Price.PriceAmount" of "com.model.entities.jpa.Price@1433836" can not be set to "null" value.
    at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.insert(HandlerFieldStrategy.java:133)
    at org.apache.openjpa.jdbc.meta.FieldMapping.insert(FieldMapping.java:623)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.insert(AbstractUpdateManager.java:239)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:166)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:97)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)
将阻止将字段属性添加到SQL。然后将使用字段默认值。

使用注释

 Caused by: <openjpa-2.1.2-SNAPSHOT-r422266:1497841 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Field "com.model.entities.jpa.Price.PriceAmount" of "com.model.entities.jpa.Price@1433836" can not be set to "null" value.
    at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.insert(HandlerFieldStrategy.java:133)
    at org.apache.openjpa.jdbc.meta.FieldMapping.insert(FieldMapping.java:623)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.insert(AbstractUpdateManager.java:239)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:166)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:97)
    at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)

将阻止将字段属性添加到SQL。然后将使用fielddefault值。

您的列在DB上可以为空吗?是@Jürgen表列也可以为空吗?你的列在DB上可以为空吗?是的@Jürgen表列也可以为空吗?“Y”是表列也为空。它写得像null?“Y”。这意味着它可以接受你能提供更多的细节吗?表创建脚本、JPA实体和完整堆栈跟踪?请检查我是否提供了所有详细信息。是表列也为空。它写得像null?“Y”。这意味着它可以接受你能提供更多的细节吗?表创建脚本、JPA实体和完整堆栈跟踪?请检查我提供的所有详细信息。