Я используюДвунаправленный Mapping Один ко многим
hibernate-jpa-2.0-api-1.0.1.Final jar
hibernate-commons-annotations-4.0.4.Final
hibernate-core-4.2.5.Final
Мои классы сущностей компании и филиала:
@Entity
@Table(name = "company")
public class Company {
@Id
@Column(name = "ID") @GeneratedValue
private Integer id;
@OneToMany(mappedBy="company",cascade = CascadeType.ALL)
@Fetch(FetchMode.SELECT)
private Set<Branch> branchs;
}
@Entity
@Table(name = "branch")
public class Branch {
@Id @Column(name = "ID") @GeneratedValue
private Integer id;
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToOne
@JoinColumn(name = "company_id")
private Company company;
}
Я получаю сообщение об ошибке на выполнение в HQL
session.createQuery("select new Company(id, name, branchs) from Company as company").list()
Я, имеющий конструктор в компании (id, название, от филиалов)
Ошибка:
2013-12-06 16:28:02 WARN SqlExceptionHelper:145 - SQL Error: 1064, SQLState: 42000 2013-12-06 16:28:02 ERROR SqlExceptionHelper:147 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as col_2_0_ from company company0_ inner join branch branchs1_ on company0_.ID=b' at line 1
Вы хотите выбрать идентификатор, имя, ветви всех записей в таблице компаний или вы хотите выбрать конкретную запись компании? –
Могу ли я спросить, почему вы это делаете? Почему бы просто не выбрать c из компании c'? – mabi
@mabi Это двунаправленное отображение. Поэтому, если у меня есть столбец для филиала компании id, и если я хочу вернуть все компании с их филиалом в компанию pojo. Поэтому я делаю это. Пожалуйста, предложите мне, если то же самое возможно другими способами. –