好的,这可能是一个微不足道的问题,但我无法想象和理解差异以及何时使用每个差异.关于单向和双向映射等概念如何影响一对多/多对多关系,我也有点不清楚.我现在正在使用Hibernate,所以任何与ORM相关的解释都会有所帮助.
举个例子,假设我有以下设置:
public class Person{
private Long personId;
private Set<Skill> skills;
//Getters and setters
}
public class Skill{
private Long skillId;
private String skillName;
//Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
那么在这种情况下我会有什么样的映射?这个具体示例的答案肯定是值得赞赏的,但我也非常希望概述何时使用一对多和多对多以及何时使用连接表与连接列以及单向与双向.
这个问题很简单,你可能只是阅读代码
这是一个非常简单的性能问题.在下面的代码示例中,我希望设置Owner我的Cat对象.我有ownerId,但猫的方法需要一个Owner对象,而不是一个Long.例如:setOwner(Owner owner)
@Autowired OwnerRepository ownerRepository;
@Autowired CatRepository catRepository;
Long ownerId = 21;
Cat cat = new Cat("Jake");
cat.setOwner(ownerRepository.findById(ownerId)); // What a waste of time
catRepository.save(cat)
Run Code Online (Sandbox Code Playgroud)
我正在使用它ownerId来加载一个Owner对象,所以我可以调用setter就Cat可以将其拉出来id,并Cat用一个保存记录owner_id.所以基本上我只是在装载一个所有者.
这是什么样的正确模式?