当前位置: 首页 > 知识库问答 >
问题:

如果我触发1个HQL查询(设备),那么51次它的孩子被多对一地触发如何修复它,hibernate5

云和硕
2023-03-14

我触发了一个获取设备对象的查询,但是在触发这个HQL查询后,自动子孩子(设备配置文件)详细信息我如何使用HQL修复.....


com.zaxxer.hikari.hibernate.HikariConnectionProvider

     <property name="hibernate.hikari.dataSource.url">jdbc:mysql://localhost:3306/gpstracking?autoReconnect=true</property>
        <property name="hibernate.hikari.dataSource.user">root</property>
        <property name="hibernate.hikari.dataSource.password">root</property> 
        <property name="hibernate.hikari.dataSourceClassName">com.mysql.jdbc.jdbc2.optional.MysqlDataSource</property>
        <property name="hibernate.hikari.maximumPoolSize">50</property>
        <property name="hibernate.hikari.idleTimeout">30000</property> 
        <!--   <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/gpstracking?autoReconnect=true</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property> --> 
        <property name="hibernate.use_sql_comments">true</property>

               <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><!--org.hibernate.dialect.MySQLDialect-->
        <property name="current_session_context_class">thread</property>
        <property name="show_sql">true</property>                   
      <!--  <mapping class="Model.ScheduleAlert" /> -->

        <mapping resource="Model/ScheduleAlert.hbm.xml"/> 

        <mapping resource="Model/login.hbm.xml"/>
        <mapping resource="Model/device.hbm.xml"/>
        <mapping resource="Model/geopath.hbm.xml"/>
        <mapping resource="Model/geopath_detail.hbm.xml"/>
        <mapping resource="Model/DeviceImage.hbm.xml"/>
        <mapping resource="Model/lastTrack.hbm.xml"/>
        <mapping resource="Model/Gt06portrequest.hbm.xml"/>
        <mapping resource="Model/history.hbm.xml"/>
        <mapping resource="Model/historyzero.hbm.xml"/>
        <mapping resource="Model/adminMaster.hbm.xml"/>
        <mapping resource="Model/Message.hbm.xml"/>
        <mapping resource="Model/PortRequests.hbm.xml"/>
        <mapping resource="Model/PortParsers.hbm.xml"/>
        <mapping resource="Model/Hostname.hbm.xml"/>
        <mapping resource="Model/EmailTemplet.hbm.xml"/>
        <mapping resource="Model/SelectedTemp.hbm.xml"/>
        <mapping resource="Model/SancharnetUser.hbm.xml"/>
        <mapping resource="Model/MessageTemplate.hbm.xml"/>
        <mapping resource="Model/SelectedMsgTemp.hbm.xml"/>
        <mapping resource="Model/Fence.hbm.xml"/>
        <mapping resource="Model/FenceDevice.hbm.xml"/>
        <mapping resource="Model/tag.hbm.xml"/>
        <mapping resource="Model/tagtype.hbm.xml"/>
        <mapping resource="Model/AlertMessages.hbm.xml"/>
        <mapping resource="Model/MaxSpeed.hbm.xml"/>
        <mapping resource="Model/alert/Alert.hbm.xml"/>
        <mapping resource="Model/managerSettings.hbm.xml"/>
        <mapping resource="Model/MobileParsers.hbm.xml"/>
        <mapping resource="Model/SampleLivePath.hbm.xml"/>
        <mapping resource="Model/managerMsgSettings.hbm.xml"/>
        <mapping resource="Model/KMLFiles.hbm.xml"/>
        <mapping resource="Model/DemoKmlFiles.hbm.xml"/>
        <mapping resource="Model/DeviceGroup.hbm.xml"/>
        <mapping resource="Model/AnalogData.hbm.xml"/>
        <mapping resource="Model/PoiPoint.hbm.xml"/>
        <mapping resource="Model/deviceprofile.hbm.xml"/>
        <mapping resource="Model/DigitalInputAlert.hbm.xml"/>
        <mapping resource="Model/AnalogInputAlert.hbm.xml"/>
        <mapping resource="Model/POIAlert.hbm.xml"/>
        <mapping resource="Model/OverConsumptionAlert.hbm.xml"/>
        <mapping resource="Model/Devicemaster.hbm.xml"/>
        <mapping resource="Model/analogdigitalparameter.hbm.xml"/>
        <mapping resource="Model/ManagerReportMaster.hbm.xml"/>
        <mapping resource="Model/ManagerReportChild.hbm.xml"/>
        <mapping resource="Model/systemParameter.hbm.xml"/>
        <mapping resource="Model/GeopathAlert.hbm.xml"/>
        <mapping resource="Model/Drivermanage.hbm.xml"/>
        <mapping resource="Model/Drivermaster.hbm.xml"/>
        <mapping resource="Model/Usermaster.hbm.xml"/>
        <mapping resource="Model/Useralocation.hbm.xml"/>
        <mapping resource="Model/Kmllive.hbm.xml"/>
        <mapping resource="Model/Payment.hbm.xml"/>
        <mapping resource="Model/Locationdata.hbm.xml"/>
        <mapping resource="Model/Alertallocationchild.hbm.xml"/>
        <mapping resource="Model/Alertallocationmaster.hbm.xml"/>
        <mapping resource="Model/Expiryreport.hbm.xml"/>
        <mapping resource="Model/Imagedata.hbm.xml"/>
        <mapping resource="Model/Convertedimg.hbm.xml"/>
        <mapping resource="Model/Antitheftalert.hbm.xml"/>
        <mapping resource="Model/OverStayAlert.hbm.xml"/>
        <mapping resource="Model/Reseller.hbm.xml"/>
        <mapping resource="Model/Client.hbm.xml"/>
        <mapping resource="Model/RouteAlert.hbm.xml"/>
        <mapping resource="Model/RouteMaster.hbm.xml"/>     
         <mapping resource="Model/Onediractionfencealert.hbm.xml"/>       
        <mapping resource="Model/LoginLog.hbm.xml"/>        
        <mapping resource="Model/MaintainanceMaster.hbm.xml"/>        
        <mapping resource="Model/MaintainanceType.hbm.xml"/>        
        <mapping resource="Model/BusScheduleMaster.hbm.xml"/>      
        <mapping resource="Model/Tcpcommand.hbm.xml"/> 
    </session-factory>
</hibernate-configuration>

device.hbm.xml

<?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>
  <class lazy="false" name="Model.device" table="devicemaster">
        <!--<cache usage="read-write"/>-->
    <id name="deviceid" type="java.lang.Integer">
      <column name="deviceid"/>
      <generator class="increment"/>
    </id>
    <property index="idx_device_managerid" name="managerId" type="java.lang.Integer">
      <column name="managerId"/>
    </property>
    <property name="tcpudpformat" type="java.lang.String">
      <column length="50" name="tcpudpformat"/>
    </property>
    <property index="idx_device_devicename" name="deviceName" type="java.lang.String">
      <column length="15" name="deviceName"/>
    </property>
    <property name="devicedescription" type="java.lang.String">
      <column length="15" name="devicedescription"/>
    </property>
    <property name="flagcondition" type="java.lang.Boolean">
      <column name="flagcondition"/>
    </property>
    <property index="idx_device_imei" name="imei" type="java.lang.String">
      <column length="15" name="imei"/>
    </property>
    <property name="deviceType" type="java.lang.String">
      <column length="15" name="deviceType"/>
    </property>
    <property name="mobileNo" type="java.lang.String">
      <column length="15" name="MobileNo"/>
    </property>
    <property name="gpsFormate" type="java.lang.String">
      <column length="50" name="GpsFormate"/>
    </property>
    <property name="anglePrecision" type="java.lang.Double">
      <column default="0.0" name="anglePrecision"/>
    </property>
    <property name="preDist" type="java.lang.String">
      <column length="15" name="PreDist"/>
    </property>
    <property name="preTime" type="java.lang.String">
      <column length="15" name="PreTime"/>
    </property>
    <property name="viewDist" type="java.lang.String">
      <column length="15" name="viewDist"/>
    </property>
    <property name="viewTime" type="java.lang.String">
      <column length="15" name="viewTime"/>
    </property>
    <property name="driverMobileNo" type="java.lang.String">
      <column name="driverMobileNo"/>
    </property>
    <property name="driverName" type="java.lang.String">
      <column name="driverName"/>
    </property>
    <property name="milage" type="java.lang.Integer">
      <column length="10" name="milage"/>
    </property>
    <property name="devicemodel" type="string">
      <column length="15" name="devicemodel"/>
    </property>
       <property name="addedon" type="java.util.Date">
      <column name="addedon"/>
    </property>
    <many-to-one column="profileId" index="idx_device_profileid" lazy="false" fetch="join" name="deviceProfile" update="true"/>
    <many-to-one class="Model.DeviceGroup" column="groupno" index="idx_device_groupno" fetch="join" name="devicegroup"  lazy="false"/>
  </class>
</hibernate-mapping>

设备配置文件. hbm.xml

<?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>
  <class lazy="false" name="Model.DeviceProfile" table="deviceprofile">
    <id column="ProfileId" name="profileId" type="java.lang.Integer">
      <generator class="increment"/>
    </id>
    <property column="ProfileName" index="idx_deviceprofile_profilename" length="50" name="profileName" type="java.lang.String">
        </property>
    <property column="SystemDate" length="30" name="systemDate" type="java.util.Date">
        </property>
    <property column="Odometer" length="15" name="odometer" type="java.lang.String">
        </property>
    <property column="digital_1" length="15" name="digital1" type="java.lang.String">
        </property>
    <property column="digital_1_inverse" name="digital1_inverse" type="java.lang.Boolean">
        </property>
    <property column="digital_2" length="15" name="digital2" type="java.lang.String">
        </property>
    <property column="digital_2_inverse" name="digital2_inverse" type="java.lang.Boolean">
        </property>
    <property column="digital_3" length="15" name="digital3" type="java.lang.String">
        </property>
    <property column="digital_3_inverse" name="digital3_inverse" type="java.lang.Boolean">
        </property>
    <property column="digital_4" length="15" name="digital4" type="java.lang.String">
        </property>
    <property column="digital_4_inverse" name="digital4_inverse" type="java.lang.Boolean">
        </property>
    <property column="digital_5" length="15" name="digital5" type="java.lang.String">
        </property>
    <property column="digital_5_inverse" name="digital5_inverse" type="java.lang.Boolean">
        </property>
    <property column="analog_5" length="15" name="analog5" type="java.lang.String">
        </property>
    <property column="analog_1_unit" length="15" name="analog1_unit" type="java.lang.String">
        </property>
    <property column="analog_2_unit" length="15" name="analog2_unit" type="java.lang.String">
        </property>
    <property column="analog_3_unit" length="15" name="analog3_unit" type="java.lang.String">
        </property>
    <property column="analog_4_unit" length="15" name="analog4_unit" type="java.lang.String">
        </property>
    <property column="analog_5_unit" length="15" name="analog5_unit" type="java.lang.String">
        </property>
    <property column="analog_1_formula" length="25" name="analog1_formula" type="java.lang.String">
        </property>
    <property column="analog_2_formula" length="25" name="analog2_formula" type="java.lang.String">
        </property>
    <property column="analog_3_formula" length="25" name="analog3_formula" type="java.lang.String">
        </property>
    <property column="analog_4_formula" length="25" name="analog4_formula" type="java.lang.String">
        </property>
    <property column="analog_5_formula" length="25" name="analog5_formula" type="java.lang.String">
        </property>
    <property column="GPSFormat" length="15" name="gpsformat" type="java.lang.String">
        </property>
    <property column="Cummulative_Odometer" length="15" name="cummulativeOdometer" type="java.lang.String">
       </property>
    <set cascade="all" inverse="true" name="analogdatas">
      <key column="profileId"/>
      <one-to-many class="Model.Analogdata"/>
    </set>
    <set cascade="all" inverse="true" lazy="false" name="deviceMaster">
      <key column="profileId"/>
      <one-to-many class="Model.device"/>
    </set>
    <many-to-one cascade="all" column="ManagerId" name="managerSettings2" update="false">
     </many-to-one>
  </class>
</hibernate-mapping>

我已经做了这个项目和DAO文件,所以请提供解决方案。。。。。

共有1个答案

毋宸
2023-03-14

请正确解释您的问题。更改deviceprofile.hbm.xml多对一映射如下,并检查它是否有帮助:

<many-to-one cascade="all" column="ManagerId" name="managerSettings2" update="false" lazy="true" fetch="select">
 类似资料:
  • 问题内容: 现在,我的代码看起来像这样: 根据我所看到的(以及该类的Javadocs),计时器将等待5000毫秒(5秒),触发action事件,等待5000毫秒,再次触发,依此类推。但是,我要获取的行为是计时器已启动,事件已触发,计时器等待5000毫秒,再次触发,然后等待再次触发。 除非我错过了任何事情,否则我不会找到一种创建不会在触发前等待的计时器的方法。有没有一种很好的,干净的方法可以模拟这一

  • 嗨,我正在尝试一个html表单代码的程序,我想要隐藏一个元素,如果一个条件被触发。 我是一个新手,目前正在学习javascript。代码如下: 我想隐藏返回航班,如果“只有一种方式”复选框被触发。 你可以忽略这个程序这里是我的服务器的链接

  • 我在我的应用程序中使用MutableLiveData进行基于事件的通信。我有单一活动两个片段架构。 在ViewModel的帮助下,我正在使用Fragment-1中的LiveData事件。但是,当我使用菜单栏用Fragment-2替换这个Fragment-1并最终返回Fragment-1时,LiveData的旧值再次被捕获。 如何避免这个问题?非常感谢任何帮助/建议!谢谢你。

  • 我在一个使用JavaScript的站点上遇到了一个问题,我需要自动点击一次,然后在我用完之前找出我得到了多少圈。例如,假设我有8圈。所以我需要的是让JavaScript自动触发所说的div id,8次。(如中所示,我这样添加)链接:https://jsfiddle.net/yxsgp8tc/

  • 我对TextWatcher有一个恼人的问题。我一直在网上搜索,但什么也找不到。如果有人能帮助我,我将不胜感激。 由于某些原因,在一次文本更改时对TextWatcher事件的调用是不稳定的。有时它们被触发一次(就像它们应该被触发的那样),有时两次,有时三次。不知道为什么,整个事情都很直截了当。有时,PostTextChanged()上的可编辑参数在toString()和length()中返回空值。

  • 更新时间:2019-05-29 22:36:57 节点简介 设备触发节点可以将设备上报的属性或事件数据作为服务的输入。监听设备的属性/事件上报,如果收到设备的属性/事件上报,则触发后续的连线逻辑。支持通过虚拟设备上报属性或事件进行调用(注意属性需要为“读写型”)。 使用场景 如果您需要对一个设备的上报数据进行监听,并进行一系列后续动作,可使用设备触发节点。 配置项 产品 与服务所在项目关联的产品。