Я понял @joincolumn в спящем режиме. Теперь я начал с @JoinTable. Ниже мой POJOHibernate: @JoinTable
@Entity
@Table(name = "person")
public class Person {
@Id
@GeneratedValue
@Column(name = "person_id")
private long person_id;
@Column(name = "name")
private String name;
@Column(name = "Address")
private String Address;
@OneToOne(cascade=CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(name="person_phone",
joinColumns={@JoinColumn(name="person_id", referencedColumnName="person_id")},
inverseJoinColumns={@JoinColumn(name="phone_id", referencedColumnName="phone_id")})
private Phone phone;
//Getters ande Setters
}
@Entity
@Table(name = "phone")
public class Phone{
@Id
@GeneratedValue
@Column(name = "phone_id")
private long phone_id;
@Column(name = "name")
private String name;
//Getters ande Setters
}
В моем контроллере, я сделал следующий
@RequestMapping(value = "/persons", method = RequestMethod.GET)
public List<person> listPersons() {
StringBuilder sql = new StringBuilder();
sql.append("SELECT * FROM person);
Query query = getSession().createSQLQuery(sql.toString()).addEntity(Person.class);
return query.list();
}
и когда я исполню, как Select * от человека. Я получаю следующую ошибку
ERROR o.h.e.jdbc.spi.SqlExceptionHelper - имя столбца phone_id был не найден в ResultSet.
То, что я хочу добиться того, когда я получить запись из людей таблицы Я хочу соответствующий телефона детали также.
Вы не задали вопрос. – ChiefTwoPencils
В телефоне, почему имя столбца «phone_id», но имя переменной - person_id? – VinhNT
Извините, опечатка ошибка. теперь исправлено – Learner