相关疑难解决方法(0)

如何在Java中实现db侦听器

我有一个要求,如果在db表中插入记录,则需要自动执行java进程.实现db侦听器的最简单方法是什么?

java database listener

65
推荐指数
4
解决办法
8万
查看次数

如何在后端数据库异步更改时刷新JPA实体?

我有一个PostgreSQL 8.4数据库,其中包含一些表和视图,这些表和视图基本上是连接在某些表上的.我使用的NetBeans 7.2(如描述这里)来从这些观点和表中派生的基于REST的服务,并部署那些到Glassfish的3.1.2.2服务器.

还有另一个进程异步更新用于构建视图的一些表中的内容.我可以直接查询视图和表格,看看这些变化是否正确发生.但是,从基于REST的服务中提取时,这些值与数据库中的值不同.我假设这是因为JPA已经缓存了Glassfish服务器上的数据库内容的本地副本,JPA需要刷新关联的实体.

我尝试将一些方法添加到NetBeans生成的AbstractFacade类中:

public abstract class AbstractFacade<T> {
    private Class<T> entityClass;
    private String entityName;
    private static boolean _refresh = true;

    public static void refresh() { _refresh = true; }

    public AbstractFacade(Class<T> entityClass) {
        this.entityClass = entityClass;
        this.entityName = entityClass.getSimpleName();
    }

    private void doRefresh() {
        if (_refresh) {
            EntityManager em = getEntityManager();
            em.flush();

            for (EntityType<?> entity : em.getMetamodel().getEntities()) {
                if (entity.getName().contains(entityName)) {
                    try {
                        em.refresh(entity);
                        // log success
                    }
                    catch (IllegalArgumentException e) {
                        // log failure ... …
Run Code Online (Sandbox Code Playgroud)

java postgresql netbeans jpa glassfish

35
推荐指数
2
解决办法
9万
查看次数

我可以在Hibernate管理的表中添加"ON DELETE CASCADE"吗?

我有一些由Hibernate管理的表,有各种外键约束.Cascade on delete目前仅由Hibernate管理.为了解决测试数据,我经常手动创建和删除一些行.如果我可以将ON DELETE CASCADE添加到外键约束中,这对我有很大的帮助,但我不知道Hibernate是否因为数据库在Hibernate之前删除了东西而绊倒了.


很多人似乎都专注于DDL.我的目的不是指示Hibernate使用SQL DELETE CASCADES创建DDL.我只是想知道如果我在数据库指定一个ON DELETE CASCADE 除了cascade = CascadeType.REMOVE在参考注释上有JPA 之外是否有任何伤害,例如@ManyToOne.

java sql hibernate jpa

15
推荐指数
2
解决办法
7146
查看次数

标签 统计

java ×3

jpa ×2

database ×1

glassfish ×1

hibernate ×1

listener ×1

netbeans ×1

postgresql ×1

sql ×1