1. <legend id='qECw2'><style id='qECw2'><dir id='qECw2'><q id='qECw2'></q></dir></style></legend>

      <small id='qECw2'></small><noframes id='qECw2'>

        <bdo id='qECw2'></bdo><ul id='qECw2'></ul>
    2. <i id='qECw2'><tr id='qECw2'><dt id='qECw2'><q id='qECw2'><span id='qECw2'><b id='qECw2'><form id='qECw2'><ins id='qECw2'></ins><ul id='qECw2'></ul><sub id='qECw2'></sub></form><legend id='qECw2'></legend><bdo id='qECw2'><pre id='qECw2'><center id='qECw2'></center></pre></bdo></b><th id='qECw2'></th></span></q></dt></tr></i><div id='qECw2'><tfoot id='qECw2'></tfoot><dl id='qECw2'><fieldset id='qECw2'></fieldset></dl></div>

        <tfoot id='qECw2'></tfoot>

        Spring Data JDBC - 多对一关系

        时间:2023-05-27
        • <legend id='RAAax'><style id='RAAax'><dir id='RAAax'><q id='RAAax'></q></dir></style></legend>
            1. <tfoot id='RAAax'></tfoot>

                <bdo id='RAAax'></bdo><ul id='RAAax'></ul>

                  <i id='RAAax'><tr id='RAAax'><dt id='RAAax'><q id='RAAax'><span id='RAAax'><b id='RAAax'><form id='RAAax'><ins id='RAAax'></ins><ul id='RAAax'></ul><sub id='RAAax'></sub></form><legend id='RAAax'></legend><bdo id='RAAax'><pre id='RAAax'><center id='RAAax'></center></pre></bdo></b><th id='RAAax'></th></span></q></dt></tr></i><div id='RAAax'><tfoot id='RAAax'></tfoot><dl id='RAAax'><fieldset id='RAAax'></fieldset></dl></div>

                  <small id='RAAax'></small><noframes id='RAAax'>

                    <tbody id='RAAax'></tbody>
                  本文介绍了Spring Data JDBC - 多对一关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我似乎在网上找不到任何关于在 Spring JDBC 中使用多对一映射的参考资料.我刚刚在不支持的文档中看到了,但我不确定是否是这种情况.

                  I can't seem to find any reference online with regards to using a Many-To-One mapping in Spring JDBC. I just saw in the documentation that is not supported but I'm not sure if this is the case.

                  我的示例是我想将我的 AppUser 映射到特定部门.

                  My example is that I want to map my AppUser to a particular Department.

                  作为参考,AppUser 使用 DEPARTMENT_ID 加入 Department 表

                  For reference, AppUser joins to Department table using DEPARTMENT_ID

                  @Table(value="m_appuser")
                  public class AppUserProjectionTwo {
                      @Id
                      private Long id;
                      private String firstname;
                      private String middlename;
                      private String lastname;
                  
                  
                  
                      @Column("DEPARTMENT_ID")
                      private DepartmentProjection departmenProjection;
                  
                      public Long getId() {
                          return id;
                      }
                  
                      public void setId(Long id) {
                          this.id = id;
                      }
                  
                  

                  但是,它似乎无法正确映射.

                  However, it seems that it won't map properly.

                  @Table("M_DEPARTMENT")
                  public class DepartmentProjection {
                      @Id
                      private Long id;
                  
                      public Long getId() {
                          return id;
                      }
                  
                      public void setId(Long id) {
                          this.id = id;
                      }
                  

                  创建的查询如下所示.我正在寻找更多相反的东西,其中 M_APPUSER.department_ID = Department.id

                  The created query looks like this. I was looking for something more of the opposite in which M_APPUSER.department_ID = Department.id

                  [SELECT "m_appuser"."ID" AS "ID", "m_appuser"."LASTNAME" AS "LASTNAME", "m_appuser"."FIRSTNAME" AS "FIRSTNAME", "m_appuser"."MIDDLENAME" AS "MIDDLENAME", "departmenProjection"."ID" AS "DEPARTMENPROJECTION_ID" FROM "m_appuser" LEFT OUTER JOIN "M_DEPARTMENT" AS "departmenProjection" ON "departmenProjection"."DEPARTMENT_ID" = "m_appuser"."ID" WHERE "m_appuser"."FIRSTNAME" = ?];
                  

                  谢谢

                  推荐答案

                  我刚刚在文档中看到不支持,但我不确定是否是这种情况.

                  I just saw in the documentation that is not supported but I'm not sure if this is the case.

                  我可以确认它不受支持.多对一关系跨越聚合的边界.跨聚合的引用必须建模为被引用聚合的 id.

                  I can confirm it is not supported. Many-To-One relationships cross the boundaries of aggregates. References across aggregates must be modelled as ids of the referenced aggregate.

                  如果你不这样做,Spring Data JDBC 将把引用视为一对一关系和同一聚合的一部分,这将对多对一关系产生你不想要的影响,例如当被引用的实体被删除时,被引用的实体被删除.这对于同一聚合中的一对一关系是正确的.

                  If you don't do this Spring Data JDBC will consider the reference a One-To-One relationship and part of the same aggregate which will have effects you don't want for a Many-To-One relationship, like the referenced entity getting deleted when the referenced entity gets deleted. Which would be correct for a One-To-One relationship within the same aggregate.

                  这在 中有更详细的解释https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates

                  这篇关于Spring Data JDBC - 多对一关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:DB2 System Runtime Table 检索最后执行的 SQL 语句 下一篇:Java中带有命名空间的XPath

                  相关文章

                1. <legend id='2tvqy'><style id='2tvqy'><dir id='2tvqy'><q id='2tvqy'></q></dir></style></legend>

                      • <bdo id='2tvqy'></bdo><ul id='2tvqy'></ul>
                      <tfoot id='2tvqy'></tfoot>
                      <i id='2tvqy'><tr id='2tvqy'><dt id='2tvqy'><q id='2tvqy'><span id='2tvqy'><b id='2tvqy'><form id='2tvqy'><ins id='2tvqy'></ins><ul id='2tvqy'></ul><sub id='2tvqy'></sub></form><legend id='2tvqy'></legend><bdo id='2tvqy'><pre id='2tvqy'><center id='2tvqy'></center></pre></bdo></b><th id='2tvqy'></th></span></q></dt></tr></i><div id='2tvqy'><tfoot id='2tvqy'></tfoot><dl id='2tvqy'><fieldset id='2tvqy'></fieldset></dl></div>

                      <small id='2tvqy'></small><noframes id='2tvqy'>