有什么办法可以使两个表之间没有直接关系但又在hibernate中有两个公共字段呢?
我有两个表,称为boiler_plates和profile,它们之间没有直接关系,但是有一个名为contract_id的公共字段。
我写了查询“来自bp.bt_contracts = p.contract_id上的Boiler_Plates
bp内部连接配置文件p”,但它不断抛出错误。“意外令牌:在第1行附近,第75列[来自com.catapult.bid.model.Boiler_Plates作为bp内部连接配置文件,在bp.bt_contracts
= p.contract_id上为p,其中bp.bt_contracts = 1]。
以下是boiler_plates和配置文件的hibernate映射文件。
锅炉板的映射文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.catapult.bid.model" default-access="field" >
<class name="Boiler_Plates" table="bt_boiler_plates" schema="bidtool">
<id name="boiler_plate_id" type="int" column="boiler_plate_id">
<generator class="sequence">
<param name="sequence">bidtool.boiler_plates_boiler_plate_id_seq</param>
</generator>
</id>
<property name="boilerPlateName" type="string">
<column name="boiler_plate_name" length="20" not-null="true" />
</property>
<property name="editable" type="int">
<column name="editable"/>
</property>
<property name="boilerPlateContent" type="string">
<column name="boiler_plate_content" length="20" />
</property>
<property name="insertTime" type="date" insert="false">
<column name="insert_time_stamp"/>
</property>
<many-to-one class="Contracts" fetch="select" name="bt_contracts">
<column name="contract_id"/>
</many-to-one>
</class>
</hibernate-mapping>
概要文件的映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field" package="com.catapult.bid.model">
<class name="Profiles" schema="bidtool" table="bid_tool_profiles">
<id column="profile_id" name="profileId" type="string">
<generator class="com.catapult.bid.commons.ProfileIDGenerator"/>
</id>
<many-to-one class="User" fetch="select" name="appUsers">
<column name="user_id"/>
</many-to-one>
<property name="profileContent" type="string">
<column name="profile_content"/>
</property>
<property name="scac" type="string">
<column length="20" name="scac"/>
</property>
<property name="created" type="timestamp" update="false">
<column name="insert_timestamp"/>
</property>
<property name="status" type="string">
<column length="9" name="status" not-null="true"/>
</property>
<property name="editable" type="string">
<column length="1" name="editable" not-null="true"/>
</property>
</class>
</hibernate-mapping>
在这种情况下,您唯一可以做的就是通过where子句进行内部联接:
select a from A a, B b where a.someColumn = b.someOtherColumn and ...
只有使用HQL中实体之间的关联,才能进行正确的联接。
问题内容: 我有一个网站,该网站将选项存储在多个表中,并根据单个页面提取所有相关选项。此刻,我结束了这样的查询:。这确实不是一个坏问题,但是我必须逐个遍历每个选择结果。 我想将所有这些提取到单个网格中,然后执行类似的操作 如果使用类似的查询,则会结束所有可能的行组合(第一个foo第一栏,第二个foo第二栏,第二个foo第一栏,第二个foo第二栏等)。 有没有一种方法可以执行这样的选择,并且每个元素
问题内容: 我有两个表- 一个包含地址,另一个包含照片。它们之间唯一的共同字段是PersonID。这些被映射到两个POJO类Address和Photo。我可以通过创建条件并在字段中添加限制来获取这些表中的详细信息。我们应该如何在两个表上编写联接。是否有可能将结果作为两个对象获得- 地址和照片。 我想做一个左联接,这样我也可以得到没有照片的人的记录。我读过,只有使用hql才有可能,但是也可以使用条件
问题内容: 我有两个表的列相似-假设表A的列为LABEL_A,表B的列为LABEL_B。LABEL_A和LABEL_B的数据类型相同。 如何在单个查询中从两个表中选择LABEL?(因此,查询结果包含单个列LABEL,该列包含两个表的LABEL列中的数据)。 编辑:我可以在游标中使用这样的UNION查询吗? 感谢您的回答。 问题答案: 使用: 会更快,但是如果存在重复项,则不会删除重复项。如果要删除
我有两个模型赋值和区域,每个都定义在单独的文件中,如下所示: Area.js: assignment.js: 当我试图用包含属性的区域信息(join)找到一些赋值时,我得到了一个错误,说:区域不关联到赋值! 提前谢谢你。
我希望hibernate创建三个表,但在我的情况下,只创建了一个表角色,我得到了如下错误 原因:org.hibernate.tool.schema.spi.schemaManagementException:无法对JDBC目标执行模式管理[创建表user_role(user_role_id numeric(19,0)标识not null,role_id numeric(19,0),user_id
我一直在努力使用Hibernate标准实现搜索功能。要求有点模糊。用户可以在搜索字段中输入任何文本/单词,搜索必须通过多个相互之间没有任何关联的表进行。 下面是两个实体类。 如果用户输入“anycharecter”,则应在这两个表中搜索该表,并应返回与输入字符匹配的获取列表。我还想将表A的结果存储到列表中,将表B的结果存储到列表中。 我不确定使用hibernate标准如何实现这一点。 我只能为一张