pojo类
package bbb;
/**
* TCode entity.
*
* @author MyEclipse Persistence Tools
*/
public class TCode implements java.io.Serializable {
// Fields
private TCodeId id;
private String mc;
private String dm;
private Byte yn;
private String bz;
// Constructors
/** default constructor */
public TCode() {
}
/** minimal constructor */
public TCode(TCodeId id, String mc, Byte yn) {
this.id = id;
this.mc = mc;
this.yn = yn;
}
/** full constructor */
public TCode(TCodeId id, String mc, String dm, Byte yn, String bz) {
this.id = id;
this.mc = mc;
this.dm = dm;
this.yn = yn;
this.bz = bz;
}
// Property accessors
public TCodeId getId() {
return this.id;
}
public void setId(TCodeId id) {
this.id = id;
}
public String getMc() {
return this.mc;
}
public void setMc(String mc) {
this.mc = mc;
}
public String getDm() {
return this.dm;
}
public void setDm(String dm) {
this.dm = dm;
}
public Byte getYn() {
return this.yn;
}
public void setYn(Byte yn) {
this.yn = yn;
}
public String getBz() {
return this.bz;
}
public void setBz(String bz) {
this.bz = bz;
}
}
复合id类
package bbb;
/**
* TCodeId entity.
*
* @author MyEclipse Persistence Tools
*/
public class TCodeId implements java.io.Serializable {
// Fields
private String tid;
private String id;
// Constructors
/** default constructor */
public TCodeId() {
}
/** full constructor */
public TCodeId(String tid, String id) {
this.tid = tid;
this.id = id;
}
// Property accessors
public String getTid() {
return this.tid;
}
public void setTid(String tid) {
this.tid = tid;
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public boolean equals(Object other) {
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof TCodeId))
return false;
TCodeId castOther = (TCodeId) other;
return ((this.getTid() == castOther.getTid()) || (this.getTid() != null
&& castOther.getTid() != null && this.getTid().equals(
castOther.getTid())))
&& ((this.getId() == castOther.getId()) || (this.getId() != null
&& castOther.getId() != null && this.getId().equals(
castOther.getId())));
}
public int hashCode() {
int result = 17;
result = 37 * result
+ (getTid() == null ? 0 : this.getTid().hashCode());
result = 37 * result + (getId() == null ? 0 : this.getId().hashCode());
return result;
}
}
测试类
package ccc;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import bbb.TCode;
import bbb.TCodeId;
public class HibernateTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
SessionFactory sessionFactory=null;
Session session=null;
Transaction tx = null;
sessionFactory = new Configuration().configure().buildSessionFactory();
session=sessionFactory.openSession();
tx=session.beginTransaction();
TCode code = (TCode) session.load(bbb.TCode.class, tcodeid);
System.out.println(code.getYn());
tx.commit();
session.close();
sessionFactory.close();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("ok");
}
}
出错信息:
org.hibernate.MappingException: Unknown entity: bbb.TCode
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:514)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:66)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:781)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:774)
at ccc.HibernateTest.main(HibernateTest.java:54)
我在网上看到的测试方法,可抱错是这样,查了好久都无法解决!!!
当用这种测试方法时:
。。。。。。。。。。。。。。
Query query = session.createQuery("select ttt.bz from bbb.TCode as ttt");
List list = query.list();
System.out.println(list.size());
for(int i= 0;i<list.size();i++){
String bz = (String) list.get(i);
System.out.println(bz);
}
。。。。。。。。。。。。
怎么list。size ()的值为零?谁解释一下?
分享到:
相关推荐
《Hibernate复合主键配置与使用详解》 在Java开发中,Hibernate作为一款强大的ORM框架,大大简化了数据库操作。然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得...
"Hibernate复合主键" Hibernate复合主键是指在 Hibernate 框架中使用复合主键来唯一标识一个实体。复合主键是指由多个字段组成的主键,用于唯一标识一个实体。在本例中,我们将通过一个简单的复合主键的做关联类的...
复合主键映射 <br>通常将复合主键相关属性,单独抽取出来,建立一个独立的类 * 必须实现序列化接口 * 必须实现equals和hashcode方法 采用标签进行映射,其它属性采用正常映射
在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本教程将深入探讨如何在Hibernate中设置复合主键,并提供一个可直接使用的配置示例。 ...
通过以上的解释,我们可以看到,虽然无主键表在数据库中并不常见,但在某些特定场景下,如复合主键,Hibernate提供了一套完整的解决方案。所提供的资源包括一个简单的Demo,可以实际运行并理解无主键表映射的实现...
在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本实例将深入探讨如何在Hibernate中实现复合主键,并提供一个具体的示例来帮助理解。 ...
请更名为 Hibernate复合主键.part2.rar
更名为 Hibernate复合主键.part3.rar
本篇文章将深入探讨Hibernate如何支持和管理复合主键。 一、理解复合主键 在数据库设计中,复合主键是一种特殊情况,当单个字段不能唯一标识表中的每一行时,可以使用两个或多个字段的组合来创建唯一的标识。例如...
本章讲解Hibernate中对数据库复合主键的支持
如果使用Hibernate开发legacy的数据库应用,对于数据库表中有使用字符串作为主键或者使用复合主键情况,那么对于这些情况的影射档是比较麻烦的。该示例应用演示了两张表ITEM和CATEGORY_ITEM表有主外键关系,并且ITEM...
博文链接:https://balaschen.iteye.com/blog/155127
在Java的Hibernate框架中,复合主键映射是一种处理多列组合成主键的情况,它使得在数据库表中由两个或更多个字段组成的主键能够被正确地映射到实体类。在使用复合主键时,我们需要遵循一定的步骤和规则。 首先,...
这篇文档将介绍如何使用Hibernate注解来生成复合主键或嵌入式主键。 复合主键(Composite Key)是指由两个或更多个列共同构成的唯一标识,而嵌入式主键(Embedded Key)则是将主键字段嵌入到实体类内部。在不使用...