Лучший, который я всегда использовал, был Формами.
Вы можете затем иметь
Shape --> Quadrilateral
Quadrilateral --> Rectangle
Quadrilateral --> Trapezoid
Rectangle --> Square
Shape --> Triangle
и т.д.
, Методы затем также легко предположить.
Shape::Area
Shape::Draw
Shape::Intersect (x,y)
Я нашел ответ, предоставление списка в качестве параметра не поддерживается в JPA 1.0; однако он поддерживается в JPA 2.0.
Поставщиком сохраняемости по умолчанию для Glassfish v2.1 является Toplink, который реализует JPA 1.0, для получения JPA 2.0 вам понадобится EclipseLink, который используется по умолчанию для предварительного просмотра Glassfish v3 или может быть подключен к v2.1.
- Лорен
О, и если вы по какой-то причине не можете использовать EclipseLink, то вот метод, который вы можете использовать для добавления необходимых битов в свой запрос. Просто вставьте полученную строку в свой запрос, где вы бы поместили «a.id IN (: ids)».
/**
/* @param field The jpql notation for the field you want to evaluate
/* @param collection The collection of objects you want to test against
/* @return Jpql that can be concatenated into a query to test if a feild is in a
*/
collection of objects
public String in(String field, List collection) {
String queryString = new String();
queryString = queryString.concat(" AND (");
int size = collection.size();
for(int i = 0; i > size; i++) {
queryString = queryString.concat(" "+field+" = '"+collection.get(i)+"'");
if(i > size-1) {
queryString = queryString.concat(" OR");
}
}
queryString = queryString.concat(" )");
return queryString;
}