I think something to do with the cyclic dependency .
Weather keeps Books and Book keep Weather.
Thanks
Deepal
Mathias P.W Nilsson wrote:
> I have two classes. A Weather class and a Book class. ( Don't pay any
> attention to why a Weather can have books :) )
>
> Anyway. The Weather class has an ArrayList of Books and the book has a
> Weather.
>
> See code below.
>
> ===========================================
> package samples.demo;
>
> import java.io.Serializable;
> import java.util.ArrayList;
>
> import javax.persistence.Column;
> import javax.persistence.Entity;
> import javax.persistence.FetchType;
> import javax.persistence.GeneratedValue;
> import javax.persistence.Id;
> import javax.persistence.JoinColumn;
> import javax.persistence.OneToMany;
> import javax.persistence.Table;
>
>
>
> @Entity()
> @Table( name = "Weather" , schema = "Hello" )
> @SuppressWarnings( "serial" )
> public class Weather implements Serializable{
>
> @Id()
> @GeneratedValue()
> @Column( name = "WeatherId" )
> Long id;
>
> @Column( name = "Temperature" )
> float temperature;
> @Column( name = "Forecast" )
> String forecast;
> @Column( name = "Rain" )
> boolean rain;
> @Column( name = "HowMuchRain" )
> float howMuchRain;
>
> @OneToMany( mappedBy = "weather", fetch = FetchType.EAGER )
> @JoinColumn( name = "WeatherId" )
> ArrayList<Book> books = new ArrayList<Book>();
>
> public Weather(){
>
> }
>
> public void setTemperature(float temp){
> temperature = temp;
> }
>
> public float getTemperature(){
> return temperature;
> }
>
> public void setForecast(String fore){
> forecast = fore;
> }
>
> public String getForecast(){
> return forecast;
> }
>
> public void setRain(boolean r){
> rain = r;
> }
>
> public boolean getRain(){
> return rain;
> }
>
> public void setId( Long id ){
> this.id = id;
> }
>
> public void setHowMuchRain(float howMuch){
> howMuchRain = howMuch;
> }
>
> public float getHowMuchRain(){
> return howMuchRain;
> }
>
> public Long getId() {
> return id;
> }
>
> public boolean equals(Object obj) {
>
> if( obj == null ){
> return false;
> }
> if( obj instanceof Weather ) {
> return ((Weather)obj).getId().equals( getId() );
> }
> return false;
> }
>
> public int hashCode() {
> return id.hashCode();
> }
>
> public ArrayList<Book> getBooks() {
> return books;
> }
>
>
> public void addBook( Book b ){
> books.add(b);
> //b.setWeather(this);
> }
>
> }
> ==========================================
>
> Book
> ==========================================
> package samples.demo;
>
> import java.io.Serializable;
>
> import javax.persistence.CascadeType;
> import javax.persistence.Column;
> import javax.persistence.Entity;
> import javax.persistence.GeneratedValue;
> import javax.persistence.Id;
> import javax.persistence.JoinColumn;
> import javax.persistence.ManyToOne;
> import javax.persistence.Table;
>
>
> @Entity()
> @Table( name = "Book" , schema = "Hello" )
> @SuppressWarnings( "serial" )
> public class Book implements Serializable{
>
> @Id()
> @GeneratedValue()
> @Column( name = "BookId" )
> Long id;
>
> @Column( name = "Title" )
> String title;
> @Column( name = "ISBN" )
> String isbn;
> @Column( name = "Author" )
> String author;
> @ManyToOne( cascade = CascadeType.REFRESH )
> @JoinColumn( name = "WeatherId" )
> private Weather weather;
>
> public Weather getWeather() {
> return weather;
> }
>
> public void setWeather(Weather weather) {
> this.weather = weather;
> }
>
> public Book(){
>
> }
>
> public String getIsbn() {
> return isbn;
> }
>
> public void setIsbn(String isbn) {
> this.isbn = isbn;
> }
>
> public String getTitle() {
> return title;
> }
>
> public void setTitle(String title) {
> this.title = title;
> }
>
> public String getAuthor() {
> return author;
> }
>
> public void setAuthor(String author) {
> this.author = author;
> }
>
> public Long getId(){
> return id;
> }
> }
>
> =======================================
>
> When I try to send this I can send the Weather class to a client.
> RPCServiceClient, but when I
> Do addBook it hangs?
>
> This Works
>
> Weather w = new Weather();
> w.setForecast( "Cloud" );
> w.setHowMuchRain(45.5f);
> w.setRain(false);
> w.setTemperature(45.23f);
>
> return w;
>
> This does not work
>
> Weather w = new Weather();
> w.setForecast( "Cloud" );
> w.setHowMuchRain(45.5f);
> w.setRain(false);
> w.setTemperature(45.23f);
> Book b = new Book();
> b.setAuthor("Mathias Nilsson");
> b.setIsbn("787812");
> b.setTitle( "Java for ultra dummies 2");
> b.setWeather(w);
> w.addBook(b);
>
> return w;
>
>
>
> Any ideas? I really hope that I can send a object that has a collection of
> objects?
>
--
Thanks,
Deepal
................................................................
"The highest tower is built one brick at a time"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]