【发布时间】:2016-03-01 09:19:23
【问题描述】:
hibernate.cf.xml 文件
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">create</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="connection.username">system</property>
<property name="connection.password">Password</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<mapping class="com.mypackage.UserDetails"/>
<!-- <mapping class="com.mypackage.Address1"/> -->
</session-factory>
</hibernate-configuration>
UserDetails 实体
package com.mypackage;
@Entity
@Table(name="UserDetailsTable")
public class UserDetails {
@Id
//@GeneratedValue//(strategy = GenerationType.AUTO)
private int userId;
private String userName;
@Embedded
private Address1 address;
private String phoneNo;
private Date date;
}
可嵌入实体
package com.mypackage;
@Embeddable
public class Address1 {
private String street;
private String city;
private String state;
private String pincode;
}
主类
public class Test {
public static void main(String[] args) {
Session session=new AnnotationConfiguration().
configure().buildSessionFactory().openSession();
Transaction t=session.beginTransaction();
Address1 addrobj1=new Address1();
addrobj1.setStreet("abcd");
addrobj1.setCity("efgh");
addrobj1.setState("abcd");
addrobj1.setPincode("123456");
UserDetails obj1=new UserDetails();
obj1.setUserId(1);
obj1.setUserName("John");
obj1.setAddress(addrobj1);
obj1.setPhoneNo("1234567890");
session.saveOrUpdate(addrobj1);
t.commit();
session.close();
System.out.println("saved successfully");
}
}
在 eclipse juno 上的错误是:
log4j:WARN 找不到记录器的附加程序 (org.hibernate.cfg.annotations.Version)。 log4j:WARN 请初始化 log4j 系统正确。线程“主”中的异常 org.hibernate.MappingException:未知实体:com.mypackage.Address1 在 org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548) 在 org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338) 在 org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180) 在 org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:487) 在 org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:84) 在 org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) 在 org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) 在 org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) 在 org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495) 在 com.mypackage.Test.main(Test.java:33)
无法解决错误。
有人帮忙吗??
【问题讨论】:
标签: hibernate