2017-06-07 3 views
0

J'ai un fichier HBM pour moi la base de données avec toutes les colonnes comme clé compositeCritères Interroger incapable de récupérer les données

<?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 auto-import="false"> 
    <class name="com.sample.dataobject.MyView" 
     table="MY_VIEW" > 
     <composite-id> 
      <key-property name="code" type="string"> 
       <column name="CODE" length="2" /> 
      </key-property> 
      <key-property name="Id" type="string"> 
       <column name="ID" length="14" /> 
      </key-property> 
      <key-property name="Desc" type="string"> 
       <column name="DESC" length="256" /> 
      </key-property> 
      <key-property name="TypeCode" type="string"> 
       <column name="TYPE_CODE" length="2" /> 
      </key-property> 
     </composite-id> 
    </class> 
</hibernate-mapping> 

Dans la vue ci-dessus, la colonne DESC peut être une valeur nulle.

J'ai écrit une requête de critères pour aller chercher des résultats basés sur CODE et ID

Criteria c = getSession().createCriteria(MyView.class); 
    c.add(Restrictions.eq("code", 'US')); 
    c.add(Restrictions.eq("Id", '12')); 
    List<MyView> annuityServices= c.list(); 

Il y a 2 lignes dans la vue qui satisfait ces conditions, mais la liste qui est retourné est [null,null]

Aussi, quand je mets un enregistreur pour vérifier la requête et la valeur, il retourne 2 lignes, mais se casse à la colonne DESC qui est null

2017-06-07 17:08:19 TRACE BasicExtractor:78 - extracted value ([CODE_1_390_0_] : [VARCHAR]) - [US] 
2017-06-07 17:08:19 TRACE BasicExtractor:78 - extracted value ([ID_2_390_0_] : [VARCHAR]) - [12] 
2017-06-07 17:08:19 TRACE BasicExtractor:68 - extracted value ([DESC_9_390_0_] : [VARCHAR]) - [null] 
2017-06-07 17:08:19 TRACE BasicExtractor:78 - extracted value ([CODE_1_390_0_] : [VARCHAR]) - [US] 
2017-06-07 17:08:19 TRACE BasicExtractor:78 - extracted value ([ID_2_390_0_] : [VARCHAR]) - [12] 
2017-06-07 17:08:19 TRACE BasicExtractor:68 - extracted value ([DESC_9_390_0_] : [VARCHAR]) - [null] 

Y a-t-il un problème ou des critères API se casse-t-il lorsqu'une valeur null est détectée?

Merci

Répondre

0

Dans la vue ci-dessus, la colonne peut DESC être une valeur nulle.

Selon , clé primaire doivent être non nul:

Les valeurs ne peuvent pas être nulles. Pour les identifications composites, aucune partie ne peut être nulle.