如果您有用户实体,则可以通过两种方式存储其地址。您可以将所有字段直接存储在用户对象中-或-您可以创建一个地址对象,该地址对象保存在单独的表中并与用户连接(或级联,等等),然后放入用户实体内的地址对象中。
进行后者的优势是什么?如果您可以在一个表中放入更多内容,那不是最有意义吗?我认为后者最终将导致更多的资源使用。我知道这对于其他事情可能更实用,但是该示例专门提到了您可以执行任何一种操作的情况。
如果您执行的操作与上述操作类似,那么该用户通常会使用IdClass吗?
对于IdClass,每个字段都必须仅仅是其他实体的键,还是您还可以在其中添加具体或临时字段? @IdClass的使用是否只是在说要使用多个Id注释,其余的取决于您?
谢谢!
最佳答案
您与用户之间的地址关系应该是多对一的。因为一个用户可能有两个地址。如果要将地址对象放在用户对象内,则每个用户只能有一个地址。在用户对象中具有地址字段也存在该问题。因此,您的建议都不是最佳做法。
无需为用户实体使用IdClass,您只需通过注释即可使用数据库本机ID生成。 @Id @GeneratedValue(strategy = GenerationType.IDENTITY)。
关于java - JPA IdClass混淆-这个想法可行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11219298/