java - 如何在 hibernate 响应中检查列表内的列表是否为空

标签 java hibernate

我在应用程序中使用 @oneToMany 注释从另一个表中获取数据。有两个实体类TopArtists.java 和Subscribe.java。这是TopArtists.java

@Id
@GeneratedValue
@Column(name="id")
private long id;

@Column(name="full_name")
private String fullName;

@Column(name="username")
private String uname;


@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="subscriber_id")
private List<Subscribe> subs;  

//Getters and setters

这里是Subscribe.java

@Id
@GeneratedValue
@Column(name="id")
private long id;
//private String status;

@Column(name="subscribed_id")
private String subID;

@Column(name="subscriber_id")
private long subrID;

//Gettes and setters

这里我根据 subscribed_id 从订阅表中获取数据。这是我的 DAO

    @SuppressWarnings({ "unchecked", "rawtypes" })
public List<TopUsers> getTopArtists() throws Exception {
    session = sessionFactory.openSession();
        Criteria cr = session.createCriteria(TopUsers.class);
        cr.addOrder(Order.asc("rank"));
        List topArtists = cr.list();
        tx = session.getTransaction();
        session.beginTransaction();
        tx.commit();
        return topArtists;
    }

这里的结果进入列表topArtists。现在我想检查 Subscribe 表是否有与 subscribed_id 对应的数据,所以我想检查 topArtist 列表中的订阅列表是否为空,因为如果列表为空,那么我想为我的 Subscribe 变量设置另一个值。请建议我如何做到这一点。

提前致谢。

最佳答案

您可以使用iterator 迭代 List<TopUsers>并检查 List<Subscribe> 的列表对于每一个,这是您需要的代码:

List<TopUsers> usersList = getTopArtists();

Iterator<TopUsers> iter = usersList.iterator();
while(iter.hasNext()){
    //Getb the iterated element
    TopUsers user = (TopUsers) iter.next();

    //Check for the subs 
    //use the getSubs() getter to get the list of subs
    if(user.getSubs().isEmpty()) {
      System.out.println("No subs found");
    }
}

关于java - 如何在 hibernate 响应中检查列表内的列表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31698950/

相关文章:

hibernate - EntityManager.persist()方法挂起

java - SSL 通信中的 Apache CXF 异常 : SocketTimeOut

java - AWS 混合云环境的 Hazelcast 配置

java - 使用 Apache HttpClient 3.0.1 的间歇性不完整响应

hibernate - 在 Tomcat 中使用 Spring 通过 JMX 公开 Hibernate(缓存)统计信息

java - Spring Data JPA 中的 @Query 注释可以接受枚举列表吗?

java - Hibernate/Spring HibernateTemplate.findByCriteria(Deatched Criteria dc) 在 View 上执行sql更新

java - Hibernate 为 MySQL 生成错误的内部连接查询

java - jps、jstat、jstack 等命令显示 "<pid> not found"

java - 如何直接使用jni将字节数组从c复制到java byte[]属性