Se eu mudo o SQL da forma correta, com o SELECT…ele me retorna este erro
expecting IDENT, found '*' near line 1, column 10 [SELECT c.*, u.* FROM com.changes.model.Changes c, com.changes.model.Usuario u WHERE u.flm = 'Messi' AND c.id_user = u.id_user]
meu select: @Override public List<Changes> buscarPorFLM() { Session session = HibernateUtil.getSessionFactory().openSession(); return session.createQuery("SELECT c.*, u.* FROM Changes c, Usuario u WHERE u.flm = 'Messi' AND c.id_user = u.id_user").list(); }
Eu fiz algumas alteracoes, nao esta dando mais o erro q mencionei acima…agora foi para outro rs
As alteracoes q fiz foi adicionar onetomany e onetoone
Erro: Advertência: JSF1063: AVISO! Definindo valor de atributo não serializável em HttpSession (chave: changesBean, classe do valor: com.changes.bean.ChangesBean). Grave: Error Rendering View[/pages/changes.xhtml] javax.el.ELException: /pages/changes.xhtml @123,71 value="#{changesBean.changesFLM}": org.hibernate.QueryException: could not resolve property: id_user of: com.changes.model.Changes [SELECT c, u FROM com.changes.model.Changes c, com.changes.model.Usuario u WHERE u.flm = 'Luis Henrique' AND c.id_user = u.id_user]
Changes
`@Entity @Table(name=“changes”)
public class Changes implements java.io.Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id",nullable=false)
private Integer id;
@Column(name="change_number",nullable=false, length=30)
private String changeNumber;
@Column(name="customer",nullable=false, length=50)
private String customer;
//Editei os outros campos para nao ficar mto grande
@Column(name="critical", length=3)
private String critical;
@OneToOne
@JoinColumn(name="id_user", referencedColumnName="id_user")
private Usuario usuario;`
Usuario
`@Entity @Table(name=“usuario”)
public class Usuario implements Serializable {
HLQ…exato…falei errado ao mencionar SQL
Entao…se eu fizer a mesma consulta do meu codigo direto no banco, funciona
SELECT c., u. FROM changes c, usuario u WHERE u.flm = ‘Luis Henrique’ AND c.id_user = u.id_user;
agora no HLQ atraves ai da minha aplicacao preciso colocar o innerjoin?
Precisa sim. As anotações vão indicar ao Hibernate qual o tipo de relação entre esses objetos para que ele consiga criar ou manusear as tabelas do modo correto.
consegui usando a sua dica do select, marcos …agora consigo fazer.
Mas quando vou cadastrar algo na tabela Changes e estou adicionando para colocar a id_user q vem da tabela Usuario, me gera este erro que estou aqui tentando saber oq eh ainda
Advertência: /pages/changes.xhtml @281,140 value="#{changesBean.change.usuario.idUser}": Target Unreachable, 'null' returned null javax.el.PropertyNotFoundException: /pages/changes.xhtml @281,140 value="#{changesBean.change.usuario.idUser}": Target Unreachable, 'null' returned null
meu html <p:inputText value="#{changesBean.change.usuario.idUser}" required="true" style="width: 200px" maxlength="40"/>
Changes (somente a parte onde aponto a id_user da outra tabela) @OneToOne @JoinColumn(name="id_user", referencedColumnName="id_user") private Usuario usuario;