이 문제는 해결해야 할 초보적 인 문제입니다. 그러나 1) 나는 Hibernate에 비교적 익숙하지 않습니다. 2) 발견 한 수정 사항이 여기에 적용되지 않습니다. . 최대 절전 모드 자체를 구성하려고 할 때최대 절전 모드 : 매핑되지 않은 클래스 연결 예외
org.hibernate.MappingException: An association from the table POSTS refers to an unmapped class: com.beans.User at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1285)
이 발생 : 여기
내가 점점 오전 예외입니다.내가 작업중인 객체는 사용자, 게시물 (추상 수퍼 클래스), 상태 및 설명 (Post의 구체적인 하위 클래스)입니다. 각각 USERS와 POSTS의 두 테이블 중 하나의 빈입니다. User 객체는 꽤 바닐라입니다. 비슷한 지루한 필드 외에도 상태 및 설명에는 소유자 (게시 한 사용자)가 있습니다. 댓글과 상태를 구분하는 것은 상태에 댓글이 붙어 있지만 부모는 없지만 댓글에는 아이 게시물이 없지만 부모가 있습니다 (예, 기본적으로 Facebook입니다).
내가 읽은 바로는이 문제는 다 대일 매핑에있는 것 같지만 잘못된 것을 찾지 못하는 것 같습니다. 다음은 내가 사용하고있는 세 가지 구성 파일입니다.
있는 hibernate.cfg.xml :
<hibernate-configuration> <session-factory> ... <!-- mapped persistence classes --> <mapping resource="User.hbm.xml" /> <mapping resource="Post.hbm.xml" /> </session-factory> </hibernate-configuration>
User.hbm.xml :
<hibernate-mapping> <class name="com.beans.User" entity-name="User" table="USERS" proxy="User"> <id name="uid" type="java.lang.Integer"> <column name="uid" /> <generator class="assigned" /> </id> ... </class> </hibernate-mapping>
Post.hbm.xml : 내가 필요 느낌을 얻을
<hibernate-mapping>
<class name="com.beans.Post" entity-name="Post" table="POSTS" proxy="Post" abstract="true">
<id name="pid" type="java.lang.Integer">
<column name="pid" />
<generator class="assigned" />
</id>
<discriminator column="type" />
<one-to-one name="parent" class="com.beans.Post"></one-to-one>
<many-to-one name="owner" class="com.beans.User" update="false" fetch="select">
<column name="owner" />
</many-to-one>
<property name="postDate" type="java.sql.Timestamp" update="false">
<column name="post_date" />
</property>
<property name="content" type="java.lang.String" update="false">
<column name="content" />
</property>
<property name="type" type="string" update="false">
<column name="type" />
</property>
<subclass name="com.beans.Status" discriminator-value="status">
<list name="children" inverse="false" table="POSTS" lazy="true">
<key column="pid" />
<index />
<one-to-many class="com.beans.Comment" />
</list>
</subclass>
<subclass name="com.beans.Comment" discriminator-value="comment"></subclass>
</class>
</hibernate-mapping>
Status에 Comment의 ArrayList가 포함되어 있지만 Post.hbm.xml의 "list"구문을 통해 암시 적으로 수행되지는 않습니다. ile?
xml 파일은 내 클래스 경로 (WEB-INF/classes)에 존재하며 .java 파일 자체는 응용 프로그램에서도 볼 수 있습니다. 통찰력은 인정 될 것입니다!
와우, 정말 고마워요! 당신의 제안을 따랐을 때 적어도 Hibernate 구성의 다른 측면을 엉망으로 만들지 않으면 서 적어도 12 개의 새로운 예외를 순차적으로 처리해야했기 때문에이 프레임 워크에 대해 배울 점이 상당히 있음을 알 수 있습니다. 이번에는 실수가 더 간단하고 모든 것이 작동하는 것 같습니다 :) 이것은 처음으로 최대 절전 모드로 구동되는 응용 프로그램이며 학습 3 일만에 숨을 쉬고 있습니다! 당신의 도움을 주셔서 대단히 감사합니다! – Magsol
당신은 Hibernate와 함께 행운을 빈다. 처음에는 조금 힘들지만 잠시 후 제 2의 천성이됩니다. 그리고 3 일 만에 문제가 해결되었다는 사실을 알게되면 앞으로도 많은 문제가 발생하지 않을 것입니다. – ChssPly76