Avatar billede magic-mouse Novice
08. juni 2016 - 14:12 Der er 1 kommentar

JPA SpringBoot: Looper ved ManyToOne og OneToMany

Jeg ha 2 entities som begge peger på hinanden, når jeg har sat alt op og henter den query jeg har lavet looper de.

@Entity
public class Chain {
    @Id
    private int id;
    @Column
    private String chainName;
    @Column(columnDefinition = "TEXT")
    private String chainLicense;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="companyId") //, insertable=false, updatable=false)
    private Company company;

    public int getId() {  return id;  }
    public void setId(int id) {  this.id = id;  }
    public String getChainName() {        return chainName;    }
    public void setChainName(String chainName) {        this.chainName = chainName;    }
    public String getChainLicense() {        return chainLicense;    }
    public void setChainLicense(String chainLicense) {        this.chainLicense = chainLicense;  }
    public boolean hasChainLicense(){        return !this.chainLicense.isEmpty();    }
    public Company getCompany() {        return company;    }
    public void setCompany(Company company) {        this.company = company;    }
}

@Entity
public class Company {
    @Id
    private int id;
    @Column
    private String companyName;
    @OneToMany(mappedBy = "company", fetch = FetchType.LAZY)
    private List<Chain> chainList;
    public int getId() {        return id;    }
    public void setId(int id) {        this.id = id;    }
    public String getCompanyName() {        return companyName;    }
    public void setCompanyName(String companyName) {        this.companyName = companyName;}
    public List<Chain> getChainList() {    return chainList;}
    public void setChainList(List<Chain> chainList) {        this.chainList = chainList;    }
}

Hvis jeg fjerner ChainList getter og setter og getCompany getter og setter, så stopper den med at loope men jeg får ikke den data.

Setter på chain fungere heller ikke hvis jeg lægger til et company objekt.

...
Company company = companyRepository.findById(byUsername.getCompany());

        Chain chain = new Chain();
        chain.setId(id);
        chain.setChainName(name);
        chain.setChainLicense(chainLicense);
        chain.setCompany(company);
        chainRepository.save(chain);
...

Nogen her som er super sej til JPA ?
Avatar billede arne_v Ekspert
08. juni 2016 - 16:30 #1
Umiddelbart er der ikke noget som springer i oejnene.

Ting du kunne proeve for at komme naermere paa aarsagen:
* undlade FetchType.LAZY
* putte annotation paa getter/setter i.s.f. field

Lidt baggrund info:
* JPA provider?
* Database?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester