小编jos*_*shp的帖子

ManyToOne with where子句

我有一些逻辑删除的记录(即active=false)导致我的@ManyToOne映射出现问题,因为连接列返回了多个结果.

我只需要包含active=true我认为可以实现的记录:

@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "site_id", referencedColumnName = "site_id", insertable = false, updatable = false)
@WhereJoinTable(clause = "active=true")
private Site site;
Run Code Online (Sandbox Code Playgroud)

但是,似乎WhereJoinTablehibernate没有使用它(也许它只对它有效OneToMany?),因为active=true它不会出现在生成的SQL(日志)中,并且问题仍然存在.

是否可以为a ManyToOne和如何连接包含where子句?

hibernate jpa

7
推荐指数
1
解决办法
6356
查看次数

为什么Hibernate会返回随机结果?

我想使用Hibernate从数据库中读取数据.我想从第一行开始,读取200行并处理它们,然后读取接下来的200行.但是Hibernate每次都会返回一个随机行.

此方法从数据库中读取.

public List getPages(int start, int end) {
    Criteria queryCriteria = session.createCriteria(Page.class);
    queryCriteria.setFirstResult(start).setMaxResults(end);
    return queryCriteria.list();
}

public void MyFunction(){
    while (readFlag) {

        //get page from database;
        List<Page> pagesList = database.getPages(startFromDatabaseIndex,
                    READ_FROM_DATABASE_SIZE);

        if ((pagesList == null) || (pagesList.size() == 0)) {
            break;
        }
        if (pagesList.size() < READ_FROM_DATABASE_SIZE) {
                readFlag = false;
        } else {
            startFromDatabaseIndex = startFromDatabaseIndex + 200;
        }

        for (int i = 0; i < pagesList.size(); i++) {
             process();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java hibernate

-1
推荐指数
1
解决办法
284
查看次数

标签 统计

hibernate ×2

java ×1

jpa ×1