我确实在我的项目中有三个模型对象之间的关系(帖子末尾的模型和存储库片段).
当我打电话时PlaceRepository.findById它会触发三个选择查询:
( "SQL")
SELECT * FROM place p where id = argSELECT * FROM user u where u.id = place.user.idSELECT * FROM city c LEFT OUTER JOIN state s on c.woj_id = s.id where c.id = place.city.id这是相当不寻常的行为(对我而言).在阅读Hibernate文档后我可以告诉它应该总是使用JOIN查询.在类中FetchType.LAZY更改为   查询(使用附加SELECT 查询)时,查询没有区别,更改为   (使用JOIN查询)时类相同.FetchType.EAGERPlaceCityFetchType.LAZYFetchType.EAGER
当我使用CityRepository.findById抑制火时两个选择:
SELECT * FROM city c where id = argSELECT * FROM state s where id = city.state.id我的目标是在所有情况下都有一个sam行为(总是JOIN或SELECT,但是JOIN首选).
型号定义:
地点:
@Entity
@Table(name = …