![]() |
1
4
这就是hibernate隐式地为您做的事情。
好消息是
|
![]() |
2
1
不一定,存储对象引用而不是id是有益的,因为它隐式地验证引用,其中id可以是任何数字、有效的cat id或其他。这是一个额外的验证和错误检查层,你必须处理。 唯一需要小心的陷阱是序列化对象,并确保没有无限循环,DTO可以提供帮助。例如,假设要将cat序列化为webservice,并且只想序列化单个cat,而不是整个cat层次结构(cat、cat的母亲、cat的母亲等)。你可以创建一个 数据传输对象 这是car类的一个瘦包装,这个包装可以序列化id,而不是引用的对象,这样使用户可以在需要的时候获得母亲。DTO还有其他好处,比如在底层域对象可以更改以最适合代码基的情况下,维护一个常量接口。 |
![]() |
3
1
除上述原因外,简单易用性如何?
如果我想使用您的设计遍历一个家族树,代码将类似于:
在更优雅的同时使用实际的对象引用: Cat firstCat = // get initial cat while ((Cat ancestor = firstCat.getParent)!=null) { //work with ancestor } |
![]() |
Gero Mendy · 如何为一个类分配兵变的结果。查询 1 年前 |
![]() |
Hamvy B · 替换不推荐的hibernate方法 1 年前 |
![]() |
Martin Pfeffer · Spring Boot JPA 1 年前 |
|
denstran · 休眠未生成正确的id 1 年前 |
![]() |
Frank · 忽略/跳过Hibernate架构验证中的特定字段 1 年前 |