Type of abstract circuit unknown

I am using Spring 3.2.3, JPA 2.1, JUnit 4.11. I try to run a junit test, and I continue to get an abstract type of circuit - an unknown error. Here is my essence (truncated in space, it has all the getters and setters):

@Entity @Table(name = "WEB_PROFILES") public class TestWebProfile implements Serializable { private static final long serialVersionUID = 1L; @Transient private String forward; @Column(name = "ACCESS_FLAG") private String accessFlag; @Temporal(TemporalType.DATE) @Column(name = "ACCESS_FLAG_UPD_DATE") private Date accessFlagUpdDate; @Column(name = "ACCESS_RESET_INTERVAL") private BigDecimal accessResetInterval; @Column(name = "ACCOUNT_TYPE") private String accountType; @Column(name = "CREATED_BY") private String createdBy; @Column(name = "E_MAIL") private String eMail; @Column(name = "FAILED_LOGIN_ATTEMPTS") private BigDecimal failedLoginAttempts; @Column(name = "FIRST_NAME") private String firstName; @Temporal(TemporalType.DATE) @Column(name = "FROI_ACCESS_APPROVE_DENY_DATE") private Date froiAccessApproveDenyDate; @Column(name = "FROI_ACCESS_APPROVED_FLAG") private String froiAccessApprovedFlag; @Column(name = "FROI_ACCESS_REQUESTED") private String froiAccessRequested; @Column(name = "FROI_APPROVED_BY") private String froiApprovedBy; @Temporal(TemporalType.DATE) @Column(name = "FROI_CONFIRM_EMAIL_SENT_DATE") private Date froiConfirmEmailSentDate; @Temporal(TemporalType.DATE) @Column(name = "FROI_LETTER_SENT_DATE") private Date froiLetterSentDate; @Column(name = "LAST_LOGON_ADDR") private String lastLogonAddr; @Temporal(TemporalType.DATE) @Column(name = "LAST_LOGON_DATE") private Date lastLogonDate; @Column(name = "LAST_NAME") private String lastName; @Column(name = "LAST_UPDATED_BY") private String lastUpdatedBy; @Column(name = "LAST_UPDATED_BY_NAME") private String lastUpdatedByName; @Column(name = "LAST_UPDATED_BY_SU_ID") private BigDecimal lastUpdatedBySuId; @Temporal(TemporalType.DATE) @Column(name = "MAIL_SENT_DATE") private Date mailSentDate; @Temporal(TemporalType.DATE) @Column(name = "MAINT_DATE") private Date maintDate; @Temporal(TemporalType.DATE) @Column(name = "NEW_PIN_REQ_DATE") private Date newPinReqDate; @Column(name = "PASSWORD") private String password; @Transient private String newPassword; @Temporal(TemporalType.DATE) @Column(name = "PASSWORD_UPD_DATE") private Date passwordUpdDate; @Column(name = "PHONE") private String phone; @Column(name = "PIN") private String pin; @Column(name = "POLICY_NUM") private BigDecimal policyNo; @Column(name = "PROFILE_CLASS_CODE") private String profileClassCode; @Temporal(TemporalType.DATE) @Column(name = "PROFILE_REQ_DATE") private Date profileReqDate; @Temporal(TemporalType.DATE) @Column(name = "PROFILE_UPDATE_DATE") private Date profileUpdateDate; @Column(name = "REMOTE_ADDR") private String remoteAddr; @Column(name = "SESSIONID") private String sessionid; @Column(name = "SUBSCRIBER_FLAG") private String subscriberFlag; @Column(name = "USER_ID") private BigDecimal userId; @Id @Column(name = "USER_NO") private BigDecimal userNo; @Column(name = "USERNAME") private String username; 

My JUnit test:

 @Test public void testGetWebProfileByUsername() { TestWebProfile wp = sso.getWebProfile("MARLENE"); System.out.println("name :" + wp.getFirstName()); System.out.println("last name :" + wp.getLastName()); } 

My DAO implementation:

 @Override public TestWebProfile getWebProfile(String username) { String sqlString = "select w from TestWebProfile w where w.username =:username"; return (TestWebProfile) getEntityManager() .createQuery(sqlString, TestWebProfile.class) .setParameter("username", username).getSingleResult(); } 

After Googling in the past hour, the only culprit I found that seems to make sense was not the @Id and @Column annotations, but I have userNo variables. Any help that could be provided would be greatly appreciated!

+6
source share
2 answers

Look at this. This gives some recommendations for the same case http://java.dzone.com/tips/the-nasty-jpa-unknown-abstract

+5
source

If you are using Java SE, you need to add the fully qualified name of your entity class to the persistence.xml file, for example

 <persistence-unit ...> <class>your.custom.package.TestWebProfile</class> </persistence-unit> 

Omitting part of the package may result in your error.

+2
source

Source: https://habr.com/ru/post/951163/


All Articles