我的代码有问题,直接查询子类可以,但是通过父类查询子类就不行无法正确执行查询,请教大家!
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">
<hibernate-mapping
package="cn.edu.buaa.software.lee.hibernate.helloworld.domain">
<class name="BillingDetails" abstract="true">
<id name="id" column="BILLING_DETAILS_ID" type="long">
<generator class="native">
<param name="sequence">SEQ_BILLING_DETAILS</param>
<param name="parameters">INCREMENT BY 1 START WITH 1</param>
</generator>
</id>
<property name="owner" column="OWNER" type="string"/>
<!--union-subclass方式!-->
<union-subclass name="CreditCard" table="TB_CREDIT_CARD">
<property name="number" column="`NUMBER`" type="string" />
<property name="expMonth" column="`EXP_MONTH`" type="string"/>
<property name="expYear" column="`EXP_YEAR`" type="string" />
</union-subclass>
<union-subclass name="BankAccount" table="TB_BANK_ACCOUNT">
<property name="account" column="ACCOUNT" type="string"/>
<property name="bankName" column="BANK_NAME" type="string"/>
<property name="swift" column="SWIFT" type="string"/>
</union-subclass>
</class>
</hibernate-mapping>
Java代码:
public static void main(String[] args) {
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
BankAccount bAccount = new BankAccount();
bAccount.setOwner("Owner Of BankAccount");
bAccount.setAccount("Account");
bAccount.setBankName("BankName");
bAccount.setSwift("Swift");
session.save(bAccount);
CreditCard cCard = new CreditCard();
cCard.setOwner("Owmer Of CreditCard");
cCard.setNumber("Number");
cCard.setExpYear("Year");
cCard.setExpMonth("Month");
session.save(cCard);
transaction.commit();
session.close();
Session newSession = HibernateUtil.getSession();
Transaction newTransaction = newSession.beginTransaction();
// Query query = newSession.createQuery("FROM CreditCard");
// List<BillingDetails> bDetails = query.list();
// System.out.println("Number of CreditCard: " + bDetails.size());
// Query query = newSession.createQuery("FROM BankAccount");
// List<BillingDetails> bDetails = query.list();
// System.out.println("Number of BankAccount: " + bDetails.size());
Query query = newSession.createQuery("from BillingDetails");
List<BillingDetails> bDetails = query.list();
System.out.println("Number of BillingDetails: " + bDetails.size());
newTransaction.commit();
newSession.close();
HibernateUtil.shutdown();
}
相关推荐
NULL 博文链接:https://zhangxing119.iteye.com/blog/1197255
自己研究的hibernate加载方式和多态加载的分析. 写的不好,不过可以供深入者确切体会hibernate的种种功能的本质
Hibernate 配备了一种非常强大的查询语言,这种语言看上去很像 SQL。但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。
第一部分 从Hibernate和EJB 3.0开始 第1章 理解对象/关系持久化 1.1 什么是持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不...
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria ...
17.1.6 多态查询 17.1.7 对查询结果排序 17.1.8 分页查询 17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询...
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria ...
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria ...
详细的介绍hibernate的所有配置映射、事务、xml的配置、多态查询、关联等核心中文帮助,提供源代码参考
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria Queries) 15.1...
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria ...
14.6. 多态查询 14.7. where子句 14.8. 表达式 14.9. order by子句 14.10. group by子句 14.11. 子查询 14.12. HQL示例 14.13. 批量的UPDATE & DELETE语句 14.14. 小技巧 & 小窍门 15. 条件查询(Criteria Queries) ...
Hibernate是一种强大的可提供对象-关系持久化和查询服务的中间件,它可以使程序员依据面向对象的原理开发持久化类,实现对象之间的关联、继承、多态、组合、集合等。 Hibernate提供了它特有的数据库查询语言HQL,...
多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria Queries) ...
14.7. 多态查询 14.8. where子句 14.9. 表达式 14.10. order by子句 14.11. group by子句 14.12. 子查询 14.13. HQL示例 14.14. 批量的UPDATE和DELETE 14.15. 小技巧 & 小窍门 15. 条件查询(Criteria ...
多态(polymorphism)查询 11.7. where子句 11.8. 表达式(Expressions) 11.9. order by 子句 11.10. group by 子句 11.11. 子查询 11.12. HQL示例 11.13. 提示和技巧(Tips & Tricks) 12. ...
15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order by子句 15.10. group by子句 15.11. 子查询 15.12. HQL示例 15.13. 批量的UPDATE & DELETE语句 15.14. 小技巧 & 小窍门 16. 条件查询(Criteria ...