Java – JPA: query to get the result according to the foreign key value defined in the entity class?
•
Java
Netbean 6.9 generates the following JPA entity classes from this SQL Server 2008 table:
I want to get all productdescriptors with a specific SKU value Something like this:
SELECT * FROM ProductDescriptors WHERE SKU='something'
Given the entity class, what is the Java code to get the result?
thank you.
@Entity @Table(name = "ProductDescriptors") @NamedQueries({ @NamedQuery(name = "ProductDescriptors.findAll",query = "SELECT p FROM ProductDescriptors p"),@NamedQuery(name = "ProductDescriptors.findByDescriptorID",query = "SELECT p FROM ProductDescriptors p WHERE p.descriptorID = :descriptorID"),@NamedQuery(name = "ProductDescriptors.findByLanguageCode",query = "SELECT p FROM ProductDescriptors p WHERE p.languageCode = :languageCode"),@NamedQuery(name = "ProductDescriptors.findByTitle",query = "SELECT p FROM ProductDescriptors p WHERE p.title = :title"),@NamedQuery(name = "ProductDescriptors.findByIsDefault",query = "SELECT p FROM ProductDescriptors p WHERE p.isDefault = :isDefault"),@NamedQuery(name = "ProductDescriptors.findByBody",query = "SELECT p FROM ProductDescriptors p WHERE p.body = :body")}) public class ProductDescriptors implements Serializable { private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @Column(name = "DescriptorID") private Integer descriptorID; @Basic(optional = false) @Column(name = "LanguageCode") private String languageCode; @Basic(optional = false) @Column(name = "Title") private String title; @Basic(optional = false) @Column(name = "IsDefault") private boolean isDefault; @Basic(optional = false) @Column(name = "Body") private String body; @JoinColumn(name = "SKU",referencedColumnName = "SKU") @ManyToOne(optional = false) private Products products;
…
Solution
Something like this:
@PersistenceContext( unitName = "youPersistenceUnitHere" ) private EntityManager _entityManager; public List<ProductDescriptors> getProductDescriptorsBySku( String sku ) { Query query = _entityManager.createQuery( "Select ProductDescriptors from ProductDescriptors pd where pd.products.sku = ?1" ); query.setParameter( 1,sku ); return new ArrayList<ProductDescriptors>( query.getResultList() ); }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码