gpt4 book ai didi

java - 线程中的异常 "main"org.hibernate.MappingException : Association references unmapped class hibernate

转载 作者:行者123 更新时间:2023-12-01 14:57:41 25 4
gpt4 key购买 nike

我有一个 hibernate 异常,这是日志和异常。我将附上代码和 hbm map 。

12:39:45,077  INFO Environment:570 - Hibernate 3.5.6-Final
12:39:45,124 INFO Environment:588 - loaded properties from resourcehibernate.properties: {hibernate.bytecode.use_reflection_optimizer=false}
12:39:45,124 INFO Environment:781 - Bytecode provider name : javassist
12:39:45,124 INFO Environment:662 - using JDK 1.4 java.sql.Timestamp handling
12:39:45,483 INFO Configuration:1518 - configuring from resource: /hibernate.cfg.xml
12:39:45,483 INFO Configuration:1495 - Configuration resource: /hibernate.cfg.xml
12:39:45,686 INFO Configuration:655 - Reading mappings from resource : com/beans /User.hbm.xml
12:39:45,874 INFO HbmBinder:348 - Mapping class: User -> user
12:39:46,092 INFO Configuration:655 - Reading mappings from resource : com/beans/Groupe.hbm.xml
12:39:46,139 INFO HbmBinder:348 - Mapping class: Groupe -> groupe
12:39:46,155 INFO Configuration:1633 - Configured SessionFactory: sf
Exception in thread "main" org.hibernate.MappingException: Association references unmapped class: com.beans.User
at org.hibernate.cfg.HbmBinder.bindCollectionSecondPass(HbmBinder.java:2473)
at org.hibernate.cfg.HbmBinder$CollectionSecondPass.secondPass(HbmBinder.java:2752)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:66)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1221)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1377)
at com.beans.Logic.init(Logic.java:22)
at com.beans.Logic.<init>(Logic.java:16)
at com.beans.Test.main(Test.java:12)

用于 session 管理的代码是 Logic.java:

package com.beans;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.*;

public class Logic {
protected Configuration cfg;
protected SessionFactory sfg;
protected Session s;
protected Transaction tx;

public Logic() {

this.init();

}

public void init() {
this.setCfg(new Configuration().configure());
this.setSfg(this.getCfg().buildSessionFactory());
this.setS(this.getSfg().openSession());
this.setTx(this.getS().beginTransaction());
}

public Configuration getCfg() {
return cfg;
}

public void setCfg(Configuration cfg) {
this.cfg = cfg;
}

public SessionFactory getSfg() {
return sfg;
}

public void setSfg(SessionFactory sfg) {
this.sfg = sfg;
}

public Session getS() {
return s;
}

public void setS(Session s) {
this.s = s;
}

public Transaction getTx() {
return tx;
}

public void setTx(Transaction tx) {
this.tx = tx;
}

}

用户类:

 package com.beans;

// Generated 3 janv. 2013 12:07:19 by Hibernate Tools 3.4.0.CR1

/**
* User generated by hbm2java
*/
public class User implements java.io.Serializable {

/**
*
*/
private static final long serialVersionUID = 1L;
private Integer userId;
private Groupe groupe;
private String username;
private String password;
private String email;

public User() {
}

public User(Groupe groupe, String username, String password, String email) {
this.groupe = groupe;
this.username = username;
this.password = password;
this.email = email;
}

public Integer getUserId() {
return this.userId;
}

public void setUserId(Integer userId) {
this.userId = userId;
}

public Groupe getGroupe() {
return this.groupe;
}

public void setGroupe(Groupe groupe) {
this.groupe = groupe;
}

public String getUsername() {
return this.username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return this.password;
}

public void setPassword(String password) {
this.password = password;
}

public String getEmail() {
return this.email;
}

public void setEmail(String email) {
this.email = email;
}

}

用户.hbm:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 3 janv. 2013 12:07:19 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="User" table="user" catalog="apurement">
<id name="userId" type="java.lang.Integer">
<column name="user_id" />
<generator class="identity" />
</id>
<many-to-one name="groupe" class="com.beans.Groupe" fetch="select">
<column name="groupe_id" not-null="true" />
</many-to-one>
<property name="username" type="string">
<column name="username" length="45" not-null="true" />
</property>
<property name="password" type="string">
<column name="password" length="45" not-null="true" />
</property>
<property name="email" type="string">
<column name="email" length="45" not-null="true" />

</property>

</class>
</hibernate-mapping>

groupe.java:

package com.beans;

// default package
// Generated 3 janv. 2013 12:07:19 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;

/**
* Groupe generated by hbm2java
*/
public class Groupe implements java.io.Serializable {

/**
*
*/
private static final long serialVersionUID = 1L;
private Integer groupeId;
private String groupeName;
private String groupeRole;
private Set users = new HashSet(0);

public Groupe() {
}

public Groupe(String groupeName, String groupeRole) {
this.groupeName = groupeName;
this.groupeRole = groupeRole;
}

public Groupe(String groupeName, String groupeRole, Set users) {
this.groupeName = groupeName;
this.groupeRole = groupeRole;
this.users = users;
}

public Integer getGroupeId() {
return this.groupeId;
}

public void setGroupeId(Integer groupeId) {
this.groupeId = groupeId;
}

public String getGroupeName() {
return this.groupeName;
}

public void setGroupeName(String groupeName) {
this.groupeName = groupeName;
}

public String getGroupeRole() {
return this.groupeRole;
}

public void setGroupeRole(String groupeRole) {
this.groupeRole = groupeRole;
}

public Set getUsers() {
return this.users;
}

public void setUsers(Set users) {
this.users = users;
}

}

Groupe.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 3 janv. 2013 12:07:19 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="Groupe" table="groupe" catalog="apurement">
<id name="groupeId" type="java.lang.Integer">
<column name="groupe_id" />
<generator class="identity" />
</id>
<property name="groupeName" type="string">
<column name="groupe_name" length="100" not-null="true" />
</property>
<property name="groupeRole" type="string">
<column name="groupe_role" length="45" not-null="true" />
</property>
<set name="users" table="user" inverse="true" lazy="true" fetch="select">
<key>
<column name="groupe_id" not-null="true" />
</key>
<one-to-many class="com.beans.User" />
</set>
</class>
</hibernate-mapping>

hibernate.cfg:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate- configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="sf">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/apurement</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping class="com.beans.User" resource="com/beans/User.hbm.xml"/>
<mapping class="com.beans.Groupe" resource="com/beans/Groupe.hbm.xml"/>
</session-factory>
</hibernate-configuration>

各位,问题出在哪里???

谢谢

最佳答案

<class name="User" table="user" catalog="apurement">应该是<class name="com.beans.User" table="user" catalog="apurement"> .

简而言之:提供完全限定的类名。

您不仅需要为您的声明提供完全限定的类名称,而且还需要在引用类的任何地方提供完全限定的类名称。就像多对一或关系一样

<many-to-one name="cuentas" class="com.banking.domain.Cuenta" fetch="select">
<column name="cuenta_id" />
</many-to-one>

还有

<one-to-many class="com.mauriciogracia.banking.domain.Cuenta" />

关于java - 线程中的异常 "main"org.hibernate.MappingException : Association references unmapped class hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com