Netbean 6.9从此sql Server 2008表生成以下JPA实体类:
我想获得具有特定SKU值的所有ProductDescriptors.像这样的东西:
- SELECT * FROM ProductDescriptors WHERE SKU='something'
给定实体类,获得结果的Java代码是什么?
谢谢.
- @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;
…
解决方法
像这样的东西:
- @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() );
- }