次の現場でJavaEEフレームワークを使用するということで現在JavaEEの自己学習をしています。
xhtmlからバッキングビーンに値を受け渡すことまではできたのですが、それをDB処理に受け渡すという段階で詰まっています。EntityManager型の変数emがnullになってしまうのです。
使用しているIDEはeclipse4.5.1です。
DBはJavaDBを使用しています。
↓DBに接続する記述の書いたクラス
package db; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import entity.Iteminfo; @Stateless public class ItemInfoDb { @PersistenceContext EntityManager em; public void create(Iteminfo obj) { System.out.println(em); em.persist(obj); } }
↓persistence.xml
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="Hello3"> <class>entity.Iteminfo</class> </persistence-unit> </persistence>
↓バッキングビーン
package bean; import java.io.Serializable; import javax.enterprise.context.SessionScoped; import javax.inject.Inject; import javax.inject.Named; import db.ItemInfoDb; import entity.Iteminfo; @SessionScoped @Named public class HelloBean implements Serializable { private int id; private String name; private String count; private String price; @Inject ItemInfoDb db; public String add() { Iteminfo itemInfo = new Iteminfo(); itemInfo.setId(id); itemInfo.setName(name); itemInfo.setCount(count); itemInfo.setPrice(price); ItemInfoDb db = new ItemInfoDb(); db.create(itemInfo); return "main.xhtml"; } //セッター、ゲッター }
サイトや本を参考にしたのですが、一向に改善しません、、詳しい方回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー