Java Hibernate再获取一个任意整数列

Java Hibernate再获取一个任意整数列,java,hibernate,Java,Hibernate,我看到了这个奇怪的控制台输出 Hibernate: select simplematc0_.id as id1_74_0_, simplematc0_.master_id as master_i2_74_0_, simplematc0_.slave_code as slave_co3_74_0_, simplematc0_.slave_grade as slave_gr4_74_0_ from match_slave simplematc0_ whe

我看到了这个奇怪的控制台输出

Hibernate: 
select
    simplematc0_.id as id1_74_0_,
    simplematc0_.master_id as master_i2_74_0_,
    simplematc0_.slave_code as slave_co3_74_0_,
    simplematc0_.slave_grade as slave_gr4_74_0_ 
from
    match_slave simplematc0_ 
where
    simplematc0_.id=?
10:07:38,713 TRACE BasicBinder:84 - binding parameter [1] as [BIGINT] - 68
10:07:38,715 TRACE BasicExtractor:74 - Found [0] as column [master_i2_74_0_]
10:07:38,715 TRACE BasicExtractor:74 - Found [test12] as column [slave_co3_74_0_]
10:07:38,715 TRACE BasicExtractor:74 - Found [1] as column [slave_gr4_74_0_]
10:07:38,715 TRACE BasicExtractor:74 - Found [1] as column [slave_gr4_74_0_]
10:07:38,716 TRACE BasicExtractor:74 - Found [1937012087] as column [slave_co3_74_0_]
我查询了4列,Hibernate返回了5列。我需要值“test12”,但它一直返回“1937012087”,我在任何表中都找不到它

为什么Hibernate会得到这个奇怪的值

properties.match.master.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class table="match_master" name="properties.match.SimpleMatchMaster"> 
<id name="id">
    <generator class="sequence">
        <param name="sequence">
            seq_matching_item_codes_pk
        </param>
    </generator>
</id>
<property name="masterCode">
 <column name="master_code"/>
</property>

    <property name="masterName">
        <column name="MASTER_NAME"/>
    </property>

    <property name="masterGrade">
        <column name="master_grade"/>
    </property>

   <property name="isInUse">
        <column name="default_in_use_id"></column>
    </property>

    <many-to-one name="useStatus" class="properties.SimpleIsInUse" fetch="select"
        insert="false" update="false" lazy="false" not-null="false" not-found="ignore">
        <column name="default_in_use_id"></column>
    </many-to-one>

    <many-to-one name="masterObject" class="foreign.Mea_class_no"
        not-found="ignore" not-null="false" update="false" insert="false"
        fetch="select" lazy="false" 
        >
        <column name="master_code"></column>
        <column name="master_grade"></column>
    </many-to-one>

    <set name="matchSlaves"  table="jnc_match_master_slave"
        order-by="slave_id" 
        lazy="false" fetch="select" cascade="all, delete-orphan"    >
        <key column="master_id" ></key>
        <many-to-many class="properties.match.SimpleMatchSlave" not-found="ignore"
            fetch="select" >
            <column name="slave_id"></column>
        </many-to-many>
    </set>

    <set name="matchHistory" table="jnc_match_history" 
        order-by="history_id" lazy="false" fetch="select" 
        cascade="all, delete-orphan, delete, persist" 
        >
        <key>
            <column name="master_id"></column>
        </key>
        <many-to-many class="properties.match.SimpleMatchHistory" 
            foreign-key="master_id" 
            >
            <column name="history_id"></column>
        </many-to-many>
    </set>



</class> 
 </hibernate-mapping>

序列匹配项代码主键
properties.match.slave.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
 <class table="match_slave" name="properties.match.SimpleMatchSlave"  

     select-before-update="true"
     >
<id name="id" type="long"   >
 <column name="id"   />
 <generator class="sequence">
     <param name="sequence">seq_match_slave_pk</param>
 </generator>
</id>

 <property name="masterId" not-null="false">
     <column name="master_id"></column>
 </property>

 <property name="slaveCode"  not-null="false">
     <column name="slave_code"></column>
 </property>

 <property name="slaveGrade"  not-null="false">
     <column name="slave_grade"></column>
 </property>
    <many-to-one name="slaveObject" class="foreign.Mea_class_no"
        fetch="select" 
        insert="false" update="false" lazy="false" not-found="ignore" not-null="false"
        >
        <column name="slave_grade"></column>
        <column name="slave_code"></column>
    </many-to-one>
</class>
</hibernate-mapping>

序列匹配从属主键

我通过更改用作复合外键的两列的顺序解决了这个问题。

以前

<many-to-one name="slaveObject" class="foreign.Mea_class_no"
        fetch="select" 
        insert="false" update="false" lazy="false" not-found="ignore" not-null="false"
        >
    <column name="slave_grade"></column>         
    <column name="slave_code"></column>

</many-to-one>

之后


<many-to-one name="slaveObject" class="foreign.Mea_class_no"
    fetch="select" 
    insert="false" update="false" lazy="false" not-found="ignore" not-null="false"
    >
    <column name="slave_code"></column>
    <column name="slave_grade"></column>
</many-to-one>