Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 为什么hibernate不在级联上执行自动增量?_Java_Hibernate - Fatal编程技术网

Java 为什么hibernate不在级联上执行自动增量?

Java 为什么hibernate不在级联上执行自动增量?,java,hibernate,Java,Hibernate,我有这两个类,我尝试使用hibernate和JPA注释执行级联保存更新,但当我尝试保存我的Order对象时,我得到一个异常,如下所述: 这是订单类 @Entity @Table(name="orders") public class Order { @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") p

我有这两个类,我尝试使用hibernate和JPA注释执行级联保存更新,但当我尝试保存我的Order对象时,我得到一个异常,如下所述:

这是订单类

@Entity
@Table(name="orders")
public class Order {

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name = "increment", strategy = "increment")
    private Integer idOc;

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL ,mappedBy = "order")
    @Valid 
    private List<OrderLine> lines = new ArrayList<OrderLine>(Arrays.asList(new OrderLine()));

   // getters and setters
}
以下是我得到的例外情况:

1-org.hibernate.exception.ConstraintViolationException:无法执行语句

2-原因:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:列“idOl”不能为null

hibernate生成器无法分配偶像,但不知何故它无法工作。有什么想法吗

更新: 在控制台上,我可以看到Hibernate正在父表上执行插入操作,但当它尝试在子表上执行插入操作时,会引发异常。
我可以看到Hibernate没有为列表中包含的每个元素分配自动递增值,但我不知道为什么。

我依赖于一个真正的DB序列对象。e、 g.在班级级别定义以下内容:

@SequenceGenerator(
    name="SEQ_ORDER",sequenceName="SEQ_ORDER", allocationSize=1, initialValue=1)
然后在Id字段的GeneratedValue属性中使用相同的序列。e、 g

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_ORDER")
@Column(name="ID", nullable=false)
protected Integer id;

请参阅将@column定义为不可空,并尝试在订单行表定义中使用空格是否可以@Tablename=orderLines@Wall-E很抱歉,我来自阿根廷,代码是西班牙语。当我翻译它以使它更容易阅读时,我犯了那个错误,但原文没有那个空间。
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_ORDER")
@Column(name="ID", nullable=false)
protected Integer id;