Hallo liebe Community, ich habe folgendes Problem.
Ich habe folgenden code,
und diese Ausgabe
Jetzt kann es vorkommen das in der Array List PersonLanguageEntryList mehr Einträge stehen als in PersonEntry. Allerdings sind diese mit einer eindeutigen ID versehen um jeden PersonLanguageEntryList eintrag mit einem PersonEntry zu verknüpfen.
Wie kann ich die PersonLanguageEntryList geordnet mit den PersonEntrys augeben lassen.
liebe Grüße
SteamBro
Ich habe folgenden code,
Java:
public List<PersonEntry> getPersonEntries() throws SQLException, ClassNotFoundException {
Connection myConn = null;
List<PersonEntry> entries = new ArrayList<>();
Class.forName("oracle.jdbc.driver.OracleDriver");
try {
myConn = DriverManager.getConnection(DatabaseConst.URL, DatabaseConst.USER, DatabaseConst.PASSWORD);
Statement myStmt = myConn.createStatement();
String whereSearchParam = "";
if (personSearchForm.getUserSearch() != null) {
whereSearchParam =
"WHERE P.LAST_NAME = " + "'" + personSearchForm.getUserSearch() + "' " + "OR P.FIRST_NAME = "
+ "'" + personSearchForm.getUserSearch() + "' " + "OR Z.PLZ = " + "'" + personSearchForm
.getUserSearch() + "' " + "OR Z.CITY_NAME = " + "'" + personSearchForm.getUserSearch()
+ "' " + "OR L.LANGUAGE_NAME = " + "'" + personSearchForm.getUserSearch() + "' ";
}
ResultSet myRs = myStmt.executeQuery(
"SELECT P.ID, P.LAST_NAME, P.FIRST_NAME, NL.PERSON_ID, NL.KNOWLEDGE, L.LANGUAGE_NAME, Z.CITY_NAME, Z.PLZ FROM NICO_PERSON P "
+ "INNER JOIN NICO_PERSON_LANGUAGE NL ON nl.person_id = p.id "
+ "INNER JOIN NICO_LANGUAGE L ON L.ID = NL.LANGUAGE_ID "
+ "INNER JOIN NICO_ZIPCODE Z ON Z.ID = P.ZIPCODE_ID " + whereSearchParam);
while (myRs.next()) {
int personId = myRs.getInt("id");
PersonEntry personEntry = getPersonEntryById(entries, personId);
if (personEntry == null) {
PersonEntry entry = new PersonEntry();
entry.setFirstName(myRs.getString("FIRST_NAME"));
entry.setLastName(myRs.getString("LAST_NAME"));
//Erstellt neue LanguageEntry Einträge aus der NICO_LANGUAGE Datenbank Tabelle
entry.setId(myRs.getInt("ID"));
PersonLanguageEntry personLanguageEntry = new PersonLanguageEntry();
personLanguageEntry.setLanguageEntry(myRs.getString("LANGUAGE_NAME"));
personLanguageEntry.setKnowledge(myRs.getString("KNOWLEDGE"));
personLanguageEntry.setPersonId(myRs.getInt("ID"));
//Erstellt neue ZipCodeEntry Einträge aus der NICO_ZIPCODE Datenbank Tabelle
ZipCodeEntry zipCodeEntry = new ZipCodeEntry();
zipCodeEntry.setCityName(myRs.getString("CITY_NAME"));
zipCodeEntry.setFavouriteZipCode(myRs.getString("PLZ"));
entry.setZipCodeEntry(zipCodeEntry);
entries.add(entry);
} else {
PersonLanguageEntry personLanguageEntry = new PersonLanguageEntry();
personLanguageEntry.setLanguageEntry(myRs.getString("LANGUAGE_NAME"));
personLanguageEntry.setKnowledge(myRs.getString("KNOWLEDGE"));
personLanguageEntry.setPersonId(myRs.getInt("PERSON_ID"));
System.out.print(personLanguageEntry);
}
}
} catch (Exception exc) {
exc.printStackTrace();
}
finally {
myConn.close();
return entries;
}
}
und diese Ausgabe
Code:
<ui:repeat value="#{guestBookView.guestBookEntries}" var="guestBookEntry">
<li> #{guestBookEntry.personEntry.firstName}, #{guestBookEntry.personEntry.lastName}</li>
<li> #{guestBookEntry.personEntry.zipCodeEntry.favouriteZipCode}, #{guestBookEntry.personEntry.zipCodeEntry.cityName}</li>
<li> #{guestBookEntry.personEntry.languageEntry.favouriteLanguage}: #{guestBookEntry.personEntry.personLanguageEntry.knowledge}</li>
<li> Eintrag:</li>
<li> #{guestBookEntry.textField}</li>
<h:commandButton class="button_small1" value="Delete" immediate="true"
action="#{guestBookView.deleteEntry(guestBookEntry)}"/>
<br/><br/>
<h:messages id="messages" globalOnly="true" />
</ui:repeat>
Jetzt kann es vorkommen das in der Array List PersonLanguageEntryList mehr Einträge stehen als in PersonEntry. Allerdings sind diese mit einer eindeutigen ID versehen um jeden PersonLanguageEntryList eintrag mit einem PersonEntry zu verknüpfen.
Wie kann ich die PersonLanguageEntryList geordnet mit den PersonEntrys augeben lassen.
liebe Grüße
SteamBro
Zuletzt bearbeitet von einem Moderator: