внутреннее объединение не работает в сопоставлении пружин данных один в один jpa - PullRequest
0 голосов
/ 19 июня 2019

У меня есть объекты-сущности, и между ними есть взаимно-однозначное соответствие

@Data
@Entity(name= "mv_garage_asset_mapping")
public class GarageAssetMapping implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 2535545189473989744L;

    @Id
    @Column(name="GARAGE_CODE")
    private String garageCode;

    @Column(name="CONTRACT_NUMBER")
    private String contractNumber;

    @OneToOne( fetch=FetchType.LAZY )
    @JoinColumn(name="CONTRACT_NUMBER", referencedColumnName = "hpano", insertable = false, updatable = false)
    @NotFound(action = NotFoundAction.IGNORE)
    private RepoAgentDetails repoAgentDetails;
}

другая сущность

@Entity 
public class RepoAgentDetails {
   @Column(name="hpano")
   private String hpano;
@OneToOne(mappedBy = "repoAgentDetails",   fetch = FetchType.LAZY)  
    private GarageAssetMapping garageAssetMapping;
}

есть сопоставление один к одному, и я использую внутреннее соединение, чтобы получить данные из таблицы когда я запускаю внутреннее соединение, данные пружины jpa не дает никакого результата, хотя запрос запускается и в коде нет исключений.

однако когда я запускаю запрос к базе данных с помощью средства sqldeveloper, запрос дает результат, но когда тот же запрос в коде, он не дает никакого результата

запрос выглядит следующим образом

@Query("select new com.mf.acrs.garage.bean.AssetDetailsBean (ga.contractNumber as contractNumber, ra.create_date as createDate ) "
            + "from mv_garage_asset_mapping ga "
            + " inner join RepoAgentDetails ra on ga.contractNumber = ra.hpano"
            + " where ga.garageCode = ?1 ")     


    List<AssetDetailsBean> findByGarageCode ( String garageCode );  

Может ли кто-нибудь помочь мне отследить проблему ..

1 Ответ

0 голосов
/ 19 июня 2019

Запрос должен выглядеть следующим образом (потому что вы не предоставили все атрибуты от сущностей, это предположение)

@Query("select new com.mf.acrs.garage.bean.AssetDetailsBean (ga.contractNumber, ga.repoAgentDetails.create_date) "
            + "from GarageAssetMapping ga where ga.garageCode = ?1")     
List<AssetDetailsBean> findByGarageCode (String garageCode);  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...