小编Rai*_*lin的帖子

Hibernate envers,post-delete事件抛出约束违例异常

Project使用Hibernate 3.5,Spring Webflow 2和Hibernate Envers进行审计.Envers在hibernate.cfg.xml中配置.我在实体'ArticleGroup'和'Article'之间有一对多的关系映射.表'articles'有一个外键'article_group_id'引用表'article_groups'中的id.在前端,当我删除一篇文章时,Hibernate Envers会为删除后事件抛出约束违例异常.如果我不使用Envers,删除操作工作正常.这两个实体定义如下

    @Entity
    @Table(name="article_groups")
    @Audited
    public class ArticleGroup implements Serializable {

        @OneToMany(mappedBy="articleGroup", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        @OrderBy("id")
        private List<Article> articles;

        // other fields, getters and setters
    }

    @Entity 
    @Table(name="articles")
    @Audited
    public class Article implements Serializable {

        @ManyToOne
        @JoinColumn(name = "article_group_id")
        private ArticleGroup articleGroup;

        // other fields, getters, setters
    }
Run Code Online (Sandbox Code Playgroud)

文章删除编码如下:

    @Service("articleManager")
    public class ArticleManagerImpl implements ArticleManager {
            // inject dao
            @SuppressWarnings("unchecked")
            @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
            public void deleteArticle(Article article, Object articles) { …
Run Code Online (Sandbox Code Playgroud)

hibernate hibernate-envers

6
推荐指数
2
解决办法
5313
查看次数

Hibernate:关于连接表的删除级联操作

我在两个实体“menu_groups”和“pages”之间有多对多关系,如下所示

    public class MenuGroup {
        @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
        @JoinTable(name = "menu_group_pages",schema="live",    
                  joinColumns=@JoinColumn(name="menu_groups_id"),
                  inverseJoinColumns=@JoinColumn(name="pages_id"))
        private Set<Page> pages = new HashSet<Page>();
    }

    public class Page {
       @ManyToMany(fetch = FetchType.EAGER, mappedBy="pages", 
                   cascade={CascadeType.MERGE})

       private Set<MenuGroup> menuGroups = new HashSet<MenuGroup>();
    }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有一个连接表,其中有两个 fk:menu_groups_id 和 Pages_id。现在我想在此连接表中添加 fk 'pages_id' 的删除级联操作。对于普通表,该语句类似于

    @OnDelete(action=OnDeleteAction.CASCADE)
Run Code Online (Sandbox Code Playgroud)

我怎样才能对连接表执行此操作?谢谢

hibernate jpa

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

Java:如何从内部类中的方法返回外部方法

这是代码

void openFile_ActionPerformed(ActionEvent e) {
    // some code here

    worker.setFile(file);
    worker.start();

    ActionListener taskPerformer = new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        if (actDone) {
            if (timer != null)
                timer.stop();
                // How to return from the openFile_ActionPerformed() method after this line?
                progressWindow.threadCompleted(worker); 

            }
        }
    };
    timer = new Timer( 100 , taskPerformer);
    timer.setRepeats(true);
    timer.start();
    progressWindow.display();
}
Run Code Online (Sandbox Code Playgroud)

我希望该方法在行之后返回openFile_ActionPerformed方法

progressWindow.threadCompleted(worker);
Run Code Online (Sandbox Code Playgroud)

但这是一个内部阶级.我试图把"回归" 它似乎从内部类中的方法"actionPerformed()"返回.

如何从内部类中的方法返回外部方法?谢谢

java swing

3
推荐指数
1
解决办法
1614
查看次数

标签 统计

hibernate ×2

hibernate-envers ×1

java ×1

jpa ×1

swing ×1