Duvida como fazer query com manytomany ..usando jpa

2 respostas
P

Olá,

no momento inserir está ok…
mas tenho dois objetos com manytomany e tenho uma duvida como fazer uma query para buscar informação de um objeto.

--como fazer por exemplo pois desse jeito está dando errro could not resolve property: 

   1. public List<UserOperationImpl> listaUsuario(UserOperationImpl u) {  
   2.         return getSession().createCriteria(UserOperationImpl.class)    
   3.         .add(Restrictions.eq("roles", u))  
   4.         .list();    
   5.     }
@Entity
@Inheritance (strategy = InheritanceType.JOINED)
@Table(name="ROLE")
public class RoleImpl  {
	@Id
	@GeneratedValue
	@Column(name = "ROLE_ID")
	/** Identificador único */
	private Long id;
	@Column(nullable = false)
	/** Nome do papel */
	private String name;
	@Column(nullable = false)
	/** Descrição do papel */
	private String description;
	
	@OneToMany(mappedBy = "role", cascade = (CascadeType.ALL))
	private List<UserImpl> users = new ArrayList<ImsUserImpl>();
	@ManyToMany(fetch=FetchType.LAZY, targetEntity = UserOperationImpl.class, cascade = (CascadeType.PERSIST))
	@JoinTable(
		name="ROLE_OP",
		joinColumns = @JoinColumn(name="ROLE_ID", referencedColumnName = "ROLE_ID") ,
		inverseJoinColumns = @JoinColumn(name = "OP_ID", referencedColumnName = "OP_ID")
    )
    @OrderBy(value="id asc")	
	
----------------------------------

@Entity
@Table(name="OPERATION")
public class UserOperationImpl {

	@Id
	@GeneratedValue
	@Column(name = "OP_ID")	
	private long id;
	@Column(name = "user_op", columnDefinition="integer")
	
	private UserOperation operation;
	@ManyToMany(cascade = (CascadeType.ALL), mappedBy = "operations",fetch=FetchType.LAZY)
    @OrderBy(value="id asc")
    private List<RoleImpl> roles = new ArrayList<RoleImpl>();

2 Respostas

P

ficou faltando a ultima parte pra intendimento???

@Entity
@Inheritance (strategy = InheritanceType.JOINED)
@Table(name="IMS_ROLE")
public class ImsRoleImpl extends AbstractRole implements ImsRole {
	@Id
	@GeneratedValue
	@Column(name = "ROLE_ID")
	/** Identificador único */
	private Long id;
	@Column(nullable = false)
	/** Nome do papel */
	private String name;
	@Column(nullable = false)
	/** Descrição do papel */
	private String description;
	
	@OneToMany(mappedBy = "role", cascade = (CascadeType.ALL))
	private List<ImsUserImpl> users = new ArrayList<ImsUserImpl>();
	@ManyToMany(fetch=FetchType.LAZY, targetEntity = ImsUserOperationImpl.class, cascade = (CascadeType.PERSIST))
	@JoinTable(
		name="IMS_ROLE_OP",
		joinColumns = @JoinColumn(name="ROLE_ID", referencedColumnName = "ROLE_ID") ,
		inverseJoinColumns = @JoinColumn(name = "OP_ID", referencedColumnName = "OP_ID")
    )
    @OrderBy(value="id asc")	
	private List<ImsUserOperationImpl> operations = new ArrayList<ImsUserOperationImpl>();
Lavieri

da uma olhada aqui…

http://www.guj.com.br/posts/list/126807.java

Criado 16 de maio de 2009
Ultima resposta 16 de mai. de 2009
Respostas 2
Participantes 2