我正在使用JPA2.1(Eclipselink2.5.1)和JBoss7.1。
@Entity
@Table(name="APLICACIONES_TB")
public class Aplicacion implements Serializable {
@Id
@Column(name="COD_APLICACION_V")
private long codAplicacionV;
@Column(name="APLICACION_V")
private String aplicacionV;
@OneToMany(mappedBy="aplicacion")
private Collection<Prestacion> prestaciones;
... getters and setters
}
@Entity
@Table(name="PRESTACIONES_TB")
public class Prestacion implements Serializable {
@Id
@Column(name="COD_PRESTACIONES_V")
private String codPrestacionesV;
@Column(name="DESCRIPCION_V")
private String descripcionV;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "COD_APLICACION_V")
private Aplicacion aplicacion;
... getters and setters ...
}
@Stateless
@LocalBean
public class DocuEJB implements DocuEJBLocal
{
@PersistenceContext(name="DocuEjb", type=PersistenceContextType.TRANSACTION)
private EntityManager em;
public Prestacion getResult(String name)
{
return em.createNamedQuery("ExampleQueryName", Prestacion.class).getSingleResult();
}
}
@ManagedBean(name = "ManagedBean")
@RequestScoped
public class ManagedBean
{
@EJB DocuEJB docuEjb;
public String doSomething()
{
Prestacion entity = docuEjb.getResult("egesr");
if (entity != null)
{
// It should return null because 'entity' should be detached
Aplicacion app = entity.getAplicacion();
// but 'app' entity is not null, ¿why not?
System.out.println (app.getCodAplicacionV());
}
}
}
System.out.println (app.getCodAplicacionV());
为什么不工作是懒惰加载?
谢谢
尝试在doSomething()上添加@transactional,我认为您的事务管理器配置得不好。
您可以在这里看到正式的spring文档。在任何情况下,您可以添加您的Spring配置,以便我们可以更好地帮助您。:)
这是我的模型: 以下是表格: 这些实体是: 我得库: org.hibernate:hibernate-core:jar:4.2.17.final:compile org.hibernate.common:hibernate-commons-annotations:jar:4.0.2.final:compile org.hibernate.javax.persistence:hibernate-jp
我有两个表:和。 在类中,我声明了字段,如下所示: 当我获得列表时,也被加载(我看到了许多单独的SELECT查询)。但我希望是惰性加载的,而不是与一起提取的。 对于其他表,如果引用的列是主键,则结果与预期一样(使用懒惰加载)。在我的示例中,不是表的主键,并且Hibernate不使用惰性加载。 你能告诉我怎样实现那个目标吗?
我谷歌了很多,这是真的奇怪的Spring Boot(最新版本)可能没有懒惰加载是不工作的。以下是我的代码片段: 我的资源: 我的服务: 编辑2: 对于规范构建,我有:
我正在使用Springjpa和龙目岛来定义爪哇豆主题。每个主题都会有很多评论。我的一吨配置是 我创建的restful api是这样的。序列化似乎是问题所在,它总是获取注释。正如Chris所说,我添加了,它似乎解决了问题。但是如果我想加载注释怎么办,不会返回序列化中的注释。
我正在尝试< code>fetchType的示例。懒惰,但是在调试代码时,似乎< code>fetchType。懒惰不起作用。 实体bean:地址 添加了属性为fetch=fetchType的注释@Basic。懒散地在地区赛场上。 我的实体bean由以下代码定义: 使用上述实体 Bean 的方法: 因此,在方法调用之后,当我检查地址对象时,它已经填充了区域字段。 请让我知道我是否缺少某些配置,或者
我还有以下两个类,它们是由我的测试模型生成的: 在DBContext的构造函数中,我显式启用了延迟加载,甚至不需要: 后来我打电话给房子列表: 在标记的断点之后,我预期,由于延迟加载,与房屋相关联的所有人员此时都不会加载。我没有访问一个人,为什么要加载他们?但是它们被加载,因为我的调试器向我显示了所有的name属性。 有人能解释一下这种行为吗?为什么惰性加载不起作用?