Hibernate: @ManyToOne (fetch = FetchType.LAZY) ne fonctionne pas sur une colonne référencée par une clé non-primaire

J'ai 2 tables: Order [OrderId(PK), OrderShipmentCode, ...] et Shipment[ShipmentId(PK), ShipmentCode, ...].

Dans Order classe, j'ai déclaré shipment champ comme suit:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "OrderShipmentCode", referencedColumnName = "ShipmentCode", insertable = false, updatable = false, nullable = false)
private Shipment shipment;

Quand je reçois la liste des Orderle Shipment est également chargé (j'ai vu un grand nombre de requêtes SELECT). Mais je veux le Shipment être paresseux chargé, de ne pas être récupérée avec Order.

Pour les autres tables, si référencé dans la colonne de clé primaire, puis les résultats sont comme prévu (Lazy-loading est utilisé). Dans mon cas, ShipmentCode n'est pas la Clé Primaire de Shipment table, et paresseux-chargement n'est pas utilisé par Hibernate.

Pourriez-vous me montrer comment atteindre cet objectif?

EDIT:
Le code de Requête est comme ci-dessous:

Criteria criteria = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(Order.class);
List result = criteria.list();

Requêtes SQL sont les suivantes: 1 instruction SELECT pour Order table et un tas d'instruction SELECT pour Shipment

source d'informationauteur Thomas Lee