Hi, First, Gilead does not support yet TopLink or EclipseLink (only Hibernate is supported), even if issues are the same (have a look at http://noon.gilead.free.fr/gilead/index.php?page=presentation for an explanation about JPA/GWT integration issues).
If TopLink is not mandatory, you can "easily" switch to Hibernate (that's JPA power) and use Gilead to solve your issue. As far as I know, Dreamsource is not JPA compliant, so using it instead of your JPA code could be very expensive if you have a lot of domain classes... Sorry, no "magic" solution... Hope this helps ! Bruno On 26 avr, 20:29, Jim <jim.p...@gmail.com> wrote: > You may try Dreamsource ORM. Dreamsource ORM is designed to target GWT > applications by providing the following features: > > 1. Whatever you codes happens in database. No merge > 2. No detached enhanced object so no third party library like Gilead > is needed > 3. No lazy loading. Just eager loading because you can expect > whatever > you want during coding. > 4. Easy to learn and use because it just mirrors SQL statements. > 5. High performance compared to Hibernate and JPA > 6. High productivity. > 7. It can be used in GWT and any other frameworks without third party > libraries. > 8. It provides most demanding features in a small library. > 9. It provides JPA 2.0 query feature in a smart way. > > You can find Spring and GWT examples fromhttp://www.gwtorm.com > > Any feedback is appreciated. > > Jim Xiehttp://www.gwtorm.comHome for GWT > ORMhttp://code.google.com/p/dreamsource-orm/downloads/list > > On Apr 26, 11:48 am, Arthur Kalmenson <arthur.k...@gmail.com> wrote: > > > When you pull an object out of the database, Collections are not > > ordinary java.util collections but are instead turned into ones that > > can keep track of persistence data. You need to use something like > > Gilead (http://noon.gilead.free.fr/gilead/), or Dozer with a DTO. If > > your Object graph isn't very large, you can use Dozer to map the > > object onto itself. > > > -- > > Arthur Kalmenson > > > On Sun, Apr 26, 2009 at 7:56 AM, Saeed Zarinfam <zarinfa...@gmail.com> > > wrote: > > > > this is my entity class. > > > > import java.io.Serializable; > > > import javax.persistence.Basic; > > > import javax.persistence.Column; > > > import javax.persistence.Entity; > > > import javax.persistence.FetchType; > > > import javax.persistence.GeneratedValue; > > > import javax.persistence.GenerationType; > > > import javax.persistence.Id; > > > import javax.persistence.JoinColumn; > > > import javax.persistence.ManyToOne; > > > import javax.persistence.NamedQueries; > > > import javax.persistence.NamedQuery; > > > import javax.persistence.Table; > > > > /** > > > * > > > * @author Saeed Zarinfam > > > */ > > > @Entity > > > @Table(name = "ole_exam") > > > @NamedQueries({...@namedquery(name = "Exam.findAll", query = "SELECT e > > > FROM Exam e"), @NamedQuery(name = "Exam.findByExamId", query = "SELECT > > > e FROM Exam e WHERE e.examId = :examId"), @NamedQuery(name = > > > "Exam.findByExamName", query = "SELECT e FROM Exam e WHERE e.examName > > > = :examName"), @NamedQuery(name = "Exam.findByExamDesc", query = > > > "SELECT e FROM Exam e WHERE e.examDesc = :examDesc"), @NamedQuery(name > > > = "Exam.findByExamTime", query = "SELECT e FROM Exam e WHERE > > > e.examTime = :examTime"), @NamedQuery(name = > > > "Exam.findByExamQuestionCount", query = "SELECT e FROM Exam e WHERE > > > e.examQuestionCount = :examQuestionCount"), @NamedQuery(name = > > > "Exam.findByExamMinMark", query = "SELECT e FROM Exam e WHERE > > > e.examMinMark = :examMinMark")}) > > > public class Exam implements Serializable { > > > private static final long serialVersionUID = 1L; > > > �...@id > > > �...@generatedvalue(strategy = GenerationType.IDENTITY) > > > �...@basic(optional = false) > > > �...@column(name = "exam_id") > > > private Long examId; > > > �...@basic(optional = false) > > > �...@column(name = "exam_name") > > > private String examName; > > > �...@column(name = "exam_desc") > > > private String examDesc; > > > �...@basic(optional = false) > > > �...@column(name = "exam_time") > > > private short examTime; > > > �...@basic(optional = false) > > > �...@column(name = "exam_question_count") > > > private short examQuestionCount; > > > �...@basic(optional = false) > > > �...@column(name = "exam_min_mark") > > > private int examMinMark; > > > �...@joincolumn(name = "exam_template_fk", referencedColumnName = > > > "exam_template_id") > > > �...@manytoone(optional = false, fetch = FetchType.LAZY) > > > private ExamTemplate examTemplateFk; > > > > public Exam() { > > > } > > > > public Exam(Long examId) { > > > this.examId = examId; > > > } > > > > public Exam( String examName, short examTime, short > > > examQuestionCount, int examMinMark) { > > > this.examName = examName; > > > this.examTime = examTime; > > > this.examQuestionCount = examQuestionCount; > > > this.examMinMark = examMinMark; > > > } > > > > public Long getExamId() { > > > return examId; > > > } > > > > public void setExamId(Long examId) { > > > this.examId = examId; > > > } > > > > public String getExamName() { > > > return examName; > > > } > > > > public void setExamName(String examName) { > > > this.examName = examName; > > > } > > > > public String getExamDesc() { > > > return examDesc; > > > } > > > > public void setExamDesc(String examDesc) { > > > this.examDesc = examDesc; > > > } > > > > public short getExamTime() { > > > return examTime; > > > } > > > > public void setExamTime(short examTime) { > > > this.examTime = examTime; > > > } > > > > public short getExamQuestionCount() { > > > return examQuestionCount; > > > } > > > > public void setExamQuestionCount(short examQuestionCount) { > > > this.examQuestionCount = examQuestionCount; > > > } > > > > public int getExamMinMark() { > > > return examMinMark; > > > } > > > > public void setExamMinMark(int examMinMark) { > > > this.examMinMark = examMinMark; > > > } > > > > public ExamTemplate getExamTemplateFk() { > > > return examTemplateFk; > > > } > > > > public void setExamTemplateFk(ExamTemplate examTemplateFk) { > > > this.examTemplateFk = examTemplateFk; > > > } > > > > �...@override > > > public int hashCode() { > > > int hash = 0; > > > hash += (examId != null ? examId.hashCode() : 0); > > > return hash; > > > } > > > > �...@override > > > public boolean equals(Object object) { > > > // TODO: Warning - this method won't work in the case the id > > > fields are not set > > > if (!(object instanceof Exam)) { > > > return false; > > > } > > > Exam other = (Exam) object; > > > if ((this.examId == null && other.examId != null) || > > > (this.examId != null && !this.examId.equals(other.examId))) { > > > return false; > > > } > > > return true; > > > } > > > > �...@override > > > public String toString() { > > > return "entity.Exam[examId=" + examId + "]"; > > > } > > > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to Google-Web-Toolkit@googlegroups.com To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---