晚上好!休眠HQL映射异常列名
我一直在学习和部分使用hibernate一段时间,并且遇到了使用hql连接的麻烦。
我跟着这些指令只为实践,看看它甚至还可以...
http://www.java2s.com/Tutorial/Java/0350__Hibernate/HSQLJoinTwoClasses.htm
他基本上产生3类: 供应商,产品,软件
一个供应商有很多产品 许多产品一个供应商
一切工作得很好...除了我不能理解一个特定的事情,阻止我实现到我自己的代码。 这是我无法理解的部分:
<class name="Product">
<id name="id" type="int">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<property name="description" type="string"/>
<property name="price" type="double"/>
<many-to-one name="supplier" class="Supplier" column="supplierId"/>
</class>
<class name="Supplier" >
<id name="id" type="int">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<bag name="products" inverse="true" cascade="all,delete-orphan">
<key column="supplierId"/>
<one-to-many class="Product"/>
</bag>
</class>
The query would be:
SELECT s.name, p.name, p.price
FROM Product p INNER JOIN p.supplier AS s";
他为什么使用“供应商ID”为列的值时,有没有到处定义供应商ID。我无法弄清楚在后台发生了什么,或者为什么它在工作...
我一直在寻找一个年龄的解释..希望你们中的一些人做了一些这样的经验,可以帮助我。会很棒。希望我不太模糊。
有一个愉快的一天, 迈克尔Kargl
解决方案
问题是,我错过了在数据库中的实际外键列名为供应商ID ...create table Product(
id int,
name varchar,
description varchar,
price decimal(6,2),
>>>> supplierid int <<<<<
)
(我永远不会复制和粘贴这样的代码再次..)
其余大部分由@carbontax's post和@MikkoMaunu's post
Awww我怎么可能错过了这个.. 你现在已经知道我现在有多尴尬。 永远不会少..感谢您的好解释! 它让一些事情变得更清晰!谢谢! –