( ), n-m.
(-SQL):
CREATE TABLE user {
id INTEGER GENERATED PRIMARY KEY,
name VARCHAR
}
(-SQL):
CREATE TABLE language {
id INTEGER GENERATED PRIMARY KEY,
name VARCHAR
}
(-SQL):
CREATE TABLE user_language {
user_id INTEGER FOREIGN KEY REFERENCES user(id),
language_id INTEGER FOREIGN KEY REFERENCES language(id)
}
, ( , ). SQL ARRAY, , , ResultSet#getArray() . PostgreSQL, , :
SELECT u.id, u.name, ARRAY(
SELECT l.name
FROM language l
JOIN user_language ul ON u.id = ul.user_id
WHERE l.id = language_id) AS languages
FROM user u
JDBC :
while (resultSet.next()) {
Long id = resultSet.getLong("id");
String name = resultSet.getString("name");
Object[] languages = resultSet.getArray("languages").getArray();
}