ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 一.对象导航查询 查询一个对象的同时,通过此对象查询它的关联对象 例子:客户和联系人 从一方查询多方: 默认:使用延迟加载 从多方查询一方: 默认:使用立即加载 ***** ### 二.测试 ~~~ package net.youworker.onetomany.test; import net.youworker.onetomany.domain.Customer; import net.youworker.onetomany.domain.LinkMan; import net.youworker.onetomany.repository.CustomerRepository; import net.youworker.onetomany.repository.LinkManRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import java.util.Set; @RunWith(SpringRunner.class) @SpringBootTest public class ObjectQueryTest { @Autowired private CustomerRepository customerRepository; @Autowired private LinkManRepository linkManRepository; /** * 测试对象导航查询(查询一个对象的时候,通过此对象查询所有的关联对象) * 默认使用的是延迟加载的形式查询的 * 调用 get 方法并不会立即发送查询,而是在使用关联对象的时候才会调用 * 延迟加载 * */ @Test @Transactional //解决在java代码中的no session问题 @Rollback(value = false) public void testQuery(){ //查询id为2的客户 Customer customer = customerRepository.getOne(2l); //对象导航查询,此客户下的所有联系人 Set<LinkMan> linkMans = customer.getLinkMans(); for (LinkMan linkMan : linkMans) { System.out.println(linkMan); } } /** * 从联系人对象导航查询他的所属客户 * */ @Test @Transactional //解决在java代码中的no session问题 @Rollback(value = false) public void testQuery2(){ LinkMan linkMan = linkManRepository.getOne(2l); //对象导航查询所属的客户 Customer customer = linkMan.getCustomer(); System.out.println(customer); System.out.println(customer.getCustName()); } } ~~~