2017-12-06 11 views
-1

ive에 오류가 발생하여 mysql 데이터베이스에 대한 파서를 XML 파일로 변환하려고하면 다음과 같은 오류가 발생합니다. 데이터베이스가 만들어집니다. 이 사용자em.getTransaction(). commit();

오류 코드 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

질문을 제기하는 방법에 대한 사이트의 FAQ를 친절히 읽고 질문에 모든 관련 세부 정보를 포함 시키도록 알려줍니다. 당신은 그것을 무시하고 "나에게 대답을"요구하고 싶다. 여기에 매우 합리적인 정보를 따르지 않으면 성공할 것 같지 않습니다. – DN1

답변

0

봐 : 해당 테이블에 대한 액세스 권한이없는 경우

Table dt354rel.user doesn't exist 

확인이 테이블이 없거나 경우.

btw. 모든 메소드에서 새로운 EntityManager를 작성할 필요는 없다. 한번 재사용하면 만들 수 있습니다.