2017-12-06 8 views
-1

iveにエラーが発生し、xmlファイルをmysqlデータベースにパーサーしようとすると、次のエラーが発生しました。データベースが作成されました。それはユーザーを作成することはできませんなぜ私はスタンド下いけない em.getTransaction()。commit(); jpa

エラーコード Console errors

Driver.java

package DAO; 

import parser.XMLParser; 

import java.util.ArrayList; 
import java.util.List; 

import entities.*; 

public class NewDriver { 

public static void main(String args[]) throws Exception{ 
    UserDAO userDAO = new UserDAO(); 

    ProductDAO productDAO= new ProductDAO(); 
    ProductOnHandDAO productOnHandDAO= new ProductOnHandDAO(); 
    XMLParser x = new XMLParser(); 

    User user1 = new User("luke", "luke"); 
    userDAO.createUser(user1); 

    Store store = new Store(); 
    StoreDAO storeDAO= new StoreDAO(); 
    storeDAO.createStore(store); 


    List<Product> products = x.getProduct("‪test.xml"); 
    for(Product p : products){ 
     p.setStore(store); 
     productDAO.createProduct(p); 
    } 

    List<Product> productList = ProductDAO.findByStore(store); 
    List<ProductOnHand>productOnHands; 

    productOnHands = x.getAllProductOnHand(productList,"‪test.xml"); 
    for (ProductOnHand p1 : productOnHands){ 
     p1.setStore(store); 
     ProductOnHandDAO.createProductOnHand(p1); 

    } 


} 
} 

UserDAO.java

public class UserDAO { 

public void createUser(User user){ 
     PersistenceUtil.persist(user); 
    } 

    public List<User> findAllUsers(){ 
     EntityManager em = PersistenceUtil.createEM(); 
     List<User> users = (List<User>) 
       em.createNamedQuery("User.findAllUsers").getResultList(); 
     em.close(); 
     return users; 
    } 

    public User findUserByUsernameAndPassword(String username, String 
     password){ 
     EntityManager em = PersistenceUtil.createEM(); 
     List<User> users = (List<User>) 






    em.createNamedQuery("User.findUserByUsernameAndPassword"). 
    setParameter("username", username).setParameter("password", 
    password).getResultList(); 
     em.close(); 
     return users.get(0); 
    } 
} 

User.java

@Entity 
public class User { 

@Id 
@Column 
private int id; 

private String username; 
private String password; 


public String getUsername() { 
    return username; 
} 

public void setUsername(String username) { 
    this.username = username; 
} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public User(String username, String password) { 
    this.username = username; 
    this.password = password; 
} 


public User() { 
} 
} 

Persistence.util

public class PersistenceUtil implements Serializable { 

private static final long serialVersionUID = 1L; 


protected static EntityManagerFactory emf = 
     Persistence.createEntityManagerFactory("dt354rel"); 


public static void persist(Object entity) { 
    EntityManager em = emf.createEntityManager(); 
    em.getTransaction().begin(); 
    em.persist(entity); 
    em.getTransaction().commit(); 
    em.close(); 
} 

public static void remove(Object entity) { 
    EntityManager em = emf.createEntityManager(); 
    em.getTransaction().begin(); 
    Object mergedEntity = em.merge(entity); 
    em.remove(mergedEntity); 
    em.getTransaction().commit(); 
    em.close(); 
} 

public static Object merge(Object entity) { 
    EntityManager em = emf.createEntityManager(); 
    em.getTransaction().begin(); 
    entity = em.merge(entity); 
    em.getTransaction().commit(); 
    em.close(); 
    return entity; 
} 

public static EntityManager createEM() { 
    return emf.createEntityManager(); 
} 

} 

すべてのヘルプは、私は私の永続クラスを見appricatedされるだろうし、それはすべて私には罰金です。エラーで

+0

いくつかのランダムなリモートサイトではなく、質問に誤りを入れてください! – DN1

+0

私を助ける解決策がありますか、それとも私にそれを教えてくれるのですか? – college1

+0

質問のポーズ方法についてサイトのよくある質問を読んでください。質問にすべての関連情報を含めるよう指示されます。あなたはそれを無視して、 "私に答えを与える"ことを求めたい。あなたがここで非常に合理的な情報に従わない限り、成功する可能性は低いです。 – DN1

答えて

0

ルック:あなたはそのテーブルへのアクセス権を持っていない場合

Table dt354rel.user doesn't exist 

チェックは、この表には存在しないか、またはされている場合。

Btw。それらすべてのメソッドに新しいEntityManagerを作成する必要はありません。あなたはそれを再利用するとそれを作成することができます。