我的问题可能很简单,我无法找到答案。
我想做这样的事情:
@Entity
public class EntityA {
@Transient
@SomeQueryAnnotation(query="select b from EntityB where b.id=1")
private EntityB entityB;
}
EntityB是一种静态资源。它不应该保存回数据库。实体之间也没有映射。
[编辑]
当你这样做时,你觉得还可以吗:
@Entity
public class EntityA {
private EntityB getEntityB() {
ServiceRemote service = (ServiceRemote)context.lookup("ejb:ServiceRemote");
return service.getEntityB();
}
}
仍然可以使用远程处理,因为可以在每个客户端的jndi.properties文件中配置连接。当您需要从实体访问数据库时,您首选的方法是什么?
答案 0 :(得分:0)
最佳建议 - 除非这些对象具有数据库内关系,否则不应存在实体关系。
第二好 - 我建议你创建一个数据传输对象来获取你的对象。
@Entity
public class EntityA {
@Transient
private EntityB entityB;
}
@Stateless
public class EntityADTO {
EntityManager em;
public EntityA findA(Object pkey) {
EntityA a = em.find(okey, EntityA.class);
a.entityB = em.find(1, EntityB.class);
return a;
}
}