2014-09-17 5 views
0

3 클래스가 있으며 DAOHelper를 사용합니다. 하지만 내 친구가 말했다 : "DAOHelper의 객체 문제" 나를 설명해 주시겠습니까? 모두들. 다른 방법을 제안 할 수 있습니까? 최대 절전 모드로 개체를 저장하는 방법

3.CUSTOMER

@Entity 
@Table(name = "CUSTOMER") 
public class Customer{ 
@Id 
@GeneratedValue 
@Column(name = "ID") 
private long Id; 

@Column(name="CUSNAME") 
private String cusName; 

@Column(name="ADDRESS") 
private String Address; 
protected Customer(){} 
// get and set method() 
} 

@Entity 
@Table(name = "DEPARTMENT") 
public class Department{ 
@Id 
@GeneratedValue 
@Column(name = "ID") 
private long Id; 

@Column(name="DEPNAME") 
private String depName; 

@Column(name="ADDRESS") 
private String Address; 
protected Department(){} 
// get and set method() 
} 

2.DEPARTMENT

@Entity 
@Table(name = "EMPLOYEE") 
public class Employee{ 
@Id 
@GeneratedValue 
@Column(name = "ID") 
private long Id; 

@Column(name="EMPNAME") 
private String empName; 

@Column(name="PHONE") 
private String phone; 
protected Employee(){} 
// get and set method() 
} 

1.EMPLOYEE 나는 DAOHelper 클래스를 사용합니다.

public class DAOHelper{ 
public Long save(Object obj) { 
    Long idInput = null; 
    try { 
     startOperation(); 
     idInput = (Long) session.save(obj); 
     tx.commit(); 
    } catch (HibernateException e) { 
     if (tx != null) 
      tx.rollback(); 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     session.close(); 
    } 
    return idInput; 
} 
} 
+3

정확히 무엇이 문제입니까? – Compass

+1

_my friend said : "DAOHelper의 오브젝트 문제"_ 친구가 컴파일러가 아닌 이상, 그런 진술에 정말로 관심을 가져야한다고 생각하지 않습니다. – CodeNewbie

+0

나는 새로운 Object로 메모리의 큰 블럭을 할당한다고 생각한다. –

답변

0

객체로의 입력을 받아, 그래서 당신은 당신의 DAOHelper 클래스 session.save(obj)를 호출하려고하면 아무 문제가없는 Session.save(Object)이 API 방법, 그래서 DAOHelper에서 객체에 아무 문제.

그러나 :

idInput = (Long) session.save(obj); 

당신은 엔티티 객체의 식별자 유형이 유형 Long가 아닌 경우 그래서 당신은 예외를 직면하게 될 것이다 Long에 반환 유형을 캐스팅.

코드에 따라 session 변수를 인스턴스 변수로 선언하고있는 것으로 보입니다. session은 스레드로부터 안전하지 않으므로 멀티 스레딩 환경에서 문제가 발생합니다.

관련 문제