0

I am new to Spring Data JPA and Hibernate. By looking at different examples I built a working model for CRUD operations on one entity, I am having trouble in joining two tables to extract AF_NAME using AF_ID from another table which is Foreign key. A null column is created with the names of and while accessing, null is returned.please check if I am following preocedure for joins and point me to any tutorial know. I followed this solution and still there is no progress.

@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;
}

Second entity is:

@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;
}

Since this is many to one relation I created set type in one and object type in another as defined in other places.Created a repository by extending crud and added a query. Excise the bunch of different annotations, I included them in hoping to solve the null entry.

@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();
} 

the applicatoin is working fine even after some tinkering until I Included these annotations. Now there is this error:

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: aff.

Community
  • 1
  • 1
arbit
  • 15
  • 4
  • Put all annotations on fields, or all annotations on getter, but don't mix the two modes. – JB Nizet Aug 22 '16 at 05:58
  • if talking about nulls being inserted then why not post the actual PERSISTENCE CODE ... – Neil Stockton Aug 22 '16 at 06:39
  • There isn't any other code I am using. If you mean the the controller (methods for saving, updating and deleting) will definitely share if required. – arbit Aug 22 '16 at 11:35

1 Answers1

0

I solved the issue with the help of my Supervisor. Looks like we have to follow naming specifications for Class and variables. And one more correction is to remove collection type object and change it to just object (removed set in aff class).I will post the corrected later, to compare and contrast.

arbit
  • 15
  • 4