gpt4 book ai didi

java - 具有未检查或不安全操作的实体 bean

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:07 25 4
gpt4 key购买 nike

我正在学习实体 Bean,但在做实验时遇到此错误。我选择为实体类(对于实体 Product)创建一个 session Bean。该文件由 NetBeans 自动创建。但它通知 ProductsFacade.java 使用未经检查或不安全的操作。

代码如下:

@Stateless
public class ProductsFacade implements ProductsFacadeRemote {
@PersistenceContext(unitName = "NhungBHSE02082_SE0606_AdvJava_Lab10_11-ejbPU")
private EntityManager em;

public void create(Products products) {
em.persist(products);
}

public void edit(Products products) {
em.merge(products);`enter code here`
}

public void remove(Products products) {
em.remove(em.merge(products));
}

public Products find(Object id) {
return em.find(Products.class, id);
}

public List<Products> findAll() {
return em.createQuery("select object(o) from Products as o").getResultList();
}

public List<Products> findRange(int[] range) {
Query q = em.createQuery("select object(o) from Products as o");
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}

public int count() {
return ((Long) em.createQuery("select count(o) from Products as o").getSingleResult()).intValue();
}
}

最佳答案

警告是由于以下方法:

public List<Products> findAll() {
return em.createQuery("select object(o) from Products as o").getResultList();
}

public List<Products> findRange(int[] range) {
...
return q.getResultList();
}

内部发生的是 query.getResultList() 返回通用 List。列表中的每个对象都是 Products 类型。你知道,但编译器不知道。类型只能在运行时确定。因此编译器显示警告uncheck or unsafe operation。您可以安全地忽略此警告。

如果实在不放心,可以在这两个方法上加上注解@SuppressWarnings("unchecked"),让警告消失。

关于java - 具有未检查或不安全操作的实体 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com