当前位置: 首页 > 知识库问答 >
问题:

使用Spring data JPA访问数据时,在两个表上创建空列

宗政坚白
2023-03-14

我是Spring Data、JPA和Hibernate的新手。通过查看不同的示例,我为一个实体上的CRUD操作构建了一个工作模型,在连接两个表以使用AF_ID从另一个表(外键)提取AF_NAME时遇到了麻烦。创建一个null列,列的名称是,当访问时,返回null。请检查我是否遵循preocedure进行联接,并向我指出任何教程。我遵循了这个解决方案,但仍然没有进展。

@Entity
@Configuration
@EnableAutoConfiguration
@Table(name = "AFF_CONFIG")
public class AFF_CONFIG implements Serializable {

@Id
@Column(name = "AFF_CONFIG_ID")
private String AFF_CONFIG_ID;

@Column(name = "AFF_ID")
private String AFF_ID;

@Column(name = "CH_ID")
private String CH_ID;

@Column(name = "M_ID")
private Long M_ID;

@Column(name = "KEY")
private String KEY;

@Column(name = "VALUE")
private String VALUE;

@Column(name = "SYSTEM")
private String SYSTEM;

private AFF aff;

@LazyCollection(LazyCollectionOption.TRUE)
@ManyToOne
@JoinColumn(name = "AFF_ID")
public AFF getAff() {
    return aff;
}

public void setAffiliate(AFF aff) {
    this.aff = aff;
}

public String getAFF_CONFIG_ID() {
    return AFF_CONFIG_ID;
}

public void setAFF_CONFIG_ID(String aFF_CONFIG_ID) {
    AFF_CONFIG_ID = aFF_CONFIG_ID;
}

public String getAFF_ID() {
    return AFF_ID;
}

public void setAFF_ID(String aFF_ID) {
    AFF_ID = AFF_ID;
}

public String getCH_ID() {
    return CH_ID;
}

public void setCHANNEL_ID(String cH_ID) {
    CH_ID = cH_ID;
}

public Long getM_ID() {
    return M_ID;
}

public void setM_ID(Long m_ID) {
    M_ID = m_ID;
}

public String getKEY() {
    return KEY;
}

public void setKEY(String kEY) {
    KEY = kEY;
}

public String getVALUE() {
    return VALUE;
}

public void setVALUE(String vALUE) {
    VALUE = vALUE;
}

public String getSYSTEM() {
    return SYSTEM;
}

public void setSYSTEM(String sYSTEM) {
    SYSTEM = sYSTEM;
}

第二个实体是:

@Entity
@Table(name = "AFF")
public class AFF implements Serializable {

@Column(name = "AFF_NAME")
private String AFF_NAME;

@Column(name = "AFF_CODE")
private String AFF_CODE;

@Id
@Column(name = "AFF_ID")
private String AFF_ID;

private Set<AFF_CONFIG> someAff = new HashSet<AFF_CONFIG>();

@LazyCollection(LazyCollectionOption.TRUE)
@OneToMany(cascade = CascadeType.ALL, mappedBy = "aff")

public Set<AFF_CONFIG> getSomeAff() {
    return someAff;
}

public void setSomeAff(Set<AFF_CONFIG> someAff) {
    this.someAff = someAff;
}

public String getAFF_ID() {
    return AFF_ID;
}

public void setAFF_ID(String aFF_ID) {
    AFF_ID = aFF_ID;
}

public String getAFF_NAME() {
    return AFF_NAME;
}

public void setAFF_NAME(String aFF_NAME) {
    AFF_NAME = aFF_NAME;
}

public String getAFF_CODE() {
    return AFF_CODE;
}

public void setAFF_CODE(String aFF_CODE) {
    AFF_CODE = aFF_CODE;
}
@Repository
public interface MarketRepository extends       CrudRepository<AFF_CONFIG,String> {

Page<AFF_CONFIG> findAll(Pageable pageable);

 @Query("Select a,b from AFF_CONFIG a, AFF b where     a.AFF_ID = b.AFF_ID" )
public List<AFF_CONFIG> getAffData();
} 

共有1个答案

宰父阳焱
2023-03-14

我在主管的帮助下解决了这个问题。看来我们必须遵循类和变量的命名规范。还有一个修正是移除集合类型对象,并将其更改为just object(在aff类中移除设置)。我将在稍后发布修正后的内容,以进行比较和对比。

 类似资料:
  • 问题内容: 我在单个表中创建两个标识列时遇到问题。这是我工作的一部分…他们不惜任何代价在一个表中需要两个标识列。有什么办法可以做到这一点。 请提供任何语法来一次或以后在单个表中创建两个标识列。 在此先感谢,Shashra 问题答案: 在SQL Server中,您可以具有一个计算列,该列仅与标识(或任何其他)列具有相同的值:

  • 如何在MySQL中为此查询创建索引?

  • 我正在使用Room作为应用程序的数据库。我正在用改型从服务器上获取数据。场景是,我有一个名为Photo的类,并用实体进行注释,以供room使用,我使用这个类使用retroft映射API的响应。我需要使用同一个类创建两个表,例如:最新的照片表和流行的照片表。我怎样才能做到这一点。 > 我不想创建一个新的类并使它从另一个类扩展 我有一个想法,通过插入一个新的列,表明照片是流行的或最新的,但我不知道如何

  • 我正在改装一些现有代码以使用Spark。我有多个包含不同数据集的数据帧。在转换主数据帧(或主数据集)时,我需要使用来自其他数据帧的数据来完成转换。我还有一种情况(至少在当前结构中),我需要在另一个数据帧的转换函数中创建新的数据帧。 我试图确定以下内容: 我可以在另一个数据帧的转换函数中访问数据帧吗 关于如何处理这种情况的指针将非常有帮助。

  • 当我在一个数据库中创建两个实体时,它会显示这个错误。当我要添加的另一个表不在那里时,该程序工作得很好。当然,它不应该有任何错误,因为它没有概念上的缺陷。我只是不能碰巧找到这个错误的原因。

  • 我有一个表包含人的详细信息,一个是货币的详细信息,一个是人的债务,还有一个是已付的债务。 我想做一个查询来显示剩余债务,比如,如果某人借了100美元和100,000伊拉克第纳尔,然后又借了250美元,过了一段时间他还了150美元和40,000伊拉克第纳尔,我想查询显示某人在两行中剩余债务,一行是200美元,另一行是60,000伊拉克第纳尔,因此剩余债务金额为一种货币和另一种货币。 我可以为每个人做