我想在Java SE中拥有
@Stateless
public class CarDAO {
@Inject
private EntityManager em;
public Car findById(Long id) {
return em.find(Car.class, id);
}
}
@Singleton
public class Application {
@Inject
private CarDAO carDAO;
public void run() {
Car car = carDAO.findById(44);
System.out.println(car);
}
}
public class EntryPoint {
public static void main(String[] args) {
Application application = // missing code
application.run();
}
}
我必须要做些什么?我在我的项目中使用postgres数据库和maven。
我已经在阅读有关Weld的内容(但看起来只像CDI)。我不知道如何增加焊接实体管理器的可能性。我知道我可以通过获得实体管理器
EntityManagerFactory emf = Persistence.createEntityManagerFactory("mgr");
EntityManager em = emf.createEntityManager();
但它不如注射方便。
如果有关于它的任何教程,那就太好了。无论如何,谢谢您的帮助!
首先,EJB是Java EE的一部分,因此您不能在Java SE中使用它们。但是,CDI可以在Java
SE环境中使用,我的示例将向您展示如何将其与Weld一起使用,但还有其他实现-请注意,CDI只是规范,而Weld是该规范的实现之一。
为了使用Weld,您需要放入weld- se-x.x.x-Final.jar
类路径或在Maven中指定其依赖项,例如
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se</artifactId>
<version><!-- See https://mvnrepository.com/artifact/org.jboss.weld.se/weld-se for current version --></version>
</dependency>
然后,您需要在您的main方法中启动容器,因此请执行以下操作
public static void main(String[] args) throws IOException {
Weld weld = new Weld();
WeldContainer container = weld.initialize();
Application application = container.instance().select(Application.class).get();
application.run();
weld.shutdown();
}
这应该可以帮助您入门,然后可以使用CDI生产者来进行EntityManager
注射
@Produces
@RequestScoped
public EntityManager createEntityManager() {
return Persistence.createEntityManagerFactory("mgr").createEntityManager();
}
public void closeEM(@Disposes EntityManager manager) {
manager.close();
}
另请参阅有关在Java SE中使用CDI的焊接文档。
问题内容: 我对jQuery相对较新,但是到目前为止,我所看到的都很喜欢。我想要的是让div(或任何元素)跨过页面顶部,就像“位置:固定”在每种浏览器中都起作用一样。 我不要复杂的东西。我不要巨大的CSS骇客。我希望仅使用jQuery(1.2.6版)就足够了,但是如果我需要jQuery-UI-core,那也很好。 我试过$(“#topBar”)。scrollFollow(); <-但是进展缓慢…我
问题内容: 我正在尝试建立一个表,该表链接来自不同表的两个记录。这些链接本身需要与另一个表相关。因此,目前,我的表格如下所示: 但是,项目之间的链接不是定向的(即,项目是链接中列出的第一项还是第二项都没有关系)。理想情况下,我希望item_id字段只出现两次;因为它是我必须要小心,始终检查是否有重复项,以确保如果已经存在14到12,则永远不会创建将12到14链接的记录。 是否有一个优雅的数据库设计
问题内容: cgi.escape似乎是一种可能的选择。它运作良好吗?有什么更好的东西吗? 问题答案: 很好 它逃脱了: 至 至 至 对于所有HTML而言,这就足够了。 编辑:如果您有非ASCII字符,您还想转义,以便包含在使用不同编码的另一个编码文档中,如 Craig 所说,只需使用: 不要忘了解码到第一,使用任何编码它编码的。 但是根据我的经验,如果您从头开始一直都在工作,那么这种编码是没有用的
问题内容: 我在生产中有20GB +的rdb转储。我怀疑有一组特定的按键使它blo肿。我希望有一种方法可以始终从静态转储分析中发现前100个最大对象,或者将其询问给服务器本身,而服务器本身有7M个对象。 像rdbtools这样的转储分析工具在这个(我认为)非常常见的用例中无济于事! 我当时想编写一个脚本,并使用“ redis-cli调试对象”对整个键集进行迭代,但是我感觉必须缺少某些工具。 问题答
问题内容: 反转此ArrayList的最简单方法是什么? 问题答案: 示例(参考):