小编Yee*_*Fei的帖子

为什么括号在函数指针声明中很重要?

我不明白为什么接受以下声明:

typedef void    (*_tStandardDeclaration)(LPVOID);
Run Code Online (Sandbox Code Playgroud)

而以下不是:

typedef void    *_tDeclarationWithoutParenthesis(LPVOID);
typedef void*   _tAlternateDeclaration(LPVOID);
Run Code Online (Sandbox Code Playgroud)

我正在使用MSVC6(我知道它是过时的和非标准的,但它需要保持每年十亿的收入系统:/)

c++ typedef function-pointers function-declaration

5
推荐指数
2
解决办法
2049
查看次数

如何在Hibernate中更改SQL执行的顺序

我正在尝试为有序孩子设计双向父子设计。

从父级中删除子级(例如3个子级中的第2个子级)时,hibernate生成的sql导致唯一约束冲突,因为在“删除”(目标)之前执行了“更新”(同级)。

我使用的RDBMS(H2)不支持延迟约束。除了以下内容,我还有哪些选择?

  • 从架构中删除唯一约束
  • 自己明确地管理排序,而不是依赖休眠

有什么办法可以让休眠生成在“更新”之前带有“删除”的sql吗?


在论坛中发现了一些旧的讨论:

删除然后在集合中插入-执行的SQL的顺序


数据库架构:

CREATE TABLE IF NOT EXISTS  Sequences (
ID                      BIGINT NOT NULL AUTO_INCREMENT,
Name                    LONGVARCHAR,
Type                    LONGVARCHAR,
Sequence                LONGVARCHAR,

ParentId                BIGINT DEFAULT NULL,
Index                   INT,

CONSTRAINT pk_SequenceId    PRIMARY KEY     (ID),
CONSTRAINT uc_Sequences     UNIQUE          (ParentId, Index),
CONSTRAINT fk_Sequences
    FOREIGN KEY (ParentId) 
    REFERENCES Sequences(ID) 
        ON UPDATE CASCADE
        ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)

类:

public class Sequence {
    protected Long ID;
    protected String name;
    protected String type;
    protected String sequence;
    protected Sequence  parentSequence;
    protected List<Sequence> childSequences …
Run Code Online (Sandbox Code Playgroud)

java sql hibernate unique-constraint self-referencing-table

5
推荐指数
1
解决办法
3673
查看次数