2017-10-21 9 views
0

제 질문은 신용 패키지를 만들거나 볼 때 오류 메시지와 관련이 있습니다.javax.ejb.EJBException : java.rmi.MarshalException

글래시 피에서 발생한 오류 메시지입니다. 내 자신의 관리 클라이언트에서

Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.1.v20150605-31e8258): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'ABOUT' in 'field list' 
Error Code: 1054 
Call: SELECT CREDITID, ABOUT, CREDITS, NAME, PACKAGECODE FROM CREDITPACKAGE 
Query: ReadAllQuery(referenceClass=CreditPackage sql="SELECT CREDITID, ABOUT, CREDITS, NAME, PACKAGECODE FROM CREDITPACKAGE") 

오류 메시지

Caused by: javax.ejb.EJBException: java.rmi.MarshalException: CORBA MARSHAL 1330446393 Maybe; nested exception is: 
    org.omg.CORBA.MARSHAL: WARNING: 00810057: Could not load class com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException vmcid: OMG minor code: 57 completed: Maybe 
    at ejb.session.stateless._CreditPackageControllerRemote_Wrapper.retrieveAllCreditPackage(ejb/session/stateless/_CreditPackageControllerRemote_Wrapper.java) 

열은 회계하지만, 그것이 말하는 이유를 잘 모르겠어요 그 '필드 목록'

에서 '정보'알 수없는 열
@Entity 
public class CreditPackage implements Serializable { 

private static final long serialVersionUID = 1L; 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long creditId; 
@Column(unique = true) 
private String packageCode; 
@Column(length = 32, nullable = false) 
private String name; 
@Column(length = 32, nullable = false) 
private String about; //already tried escaping the column name using `` and backslashes 
@Column(nullable = false, precision = 18, scale = 4) 
private BigDecimal credits; 
} 

이 방법

@Override 
public List<CreditPackage> retrieveAllCreditPackage() { 
    Query query = em.createQuery("SELECT s FROM CreditPackage s"); //Not too sure if this is correct 
    return query.getResultList(); 

} 
012,351 세션빈 제어기에

이것을 읽어 주셔서 감사합니다. 다행히도이 문제를 해결할 수있는 사람이 있습니다.

답변

0

다른 사람들과이 질문을 해결하는 데 도움이됩니다. 새로운 열을 추가 할 때 JDBC 데이터베이스를 다시 생성하지 못했기 때문에 이전 열이 아직 남아 있습니다. 따라서 예외. 내가 한 그래서

했다 :

  1. 는 JDBC 데이터베이스의 모든 테이블을 삭제 내 응용 프로그램 시스템 재배치
  2. 내 응용 프로그램 클라이언트를 실행합니다.

그런 다음 새 열에 따라 JDBC 데이터베이스에서 새 테이블을 다시 생성하기 때문에 오류가 해결됩니다.

다른 사람들에게 도움이되기를 바랍니다. 이 책을 읽어 주셔서 감사합니다. :)