//$Id: $ /* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. All third-party contributions are * distributed under license by Red Hat Middleware LLC. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA * */ package org.hibernate.test.cascade.circle; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Node { // @Id // @SequenceGenerator(name="NODE_SEQ", sequenceName="NODE_SEQ", initialValue=1, allocationSize=1) // @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="NODE_SEQ") private Long nodeID; private long version; private String name; /** the list of orders that are delivered at this node */ // @OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.MERGE, CascadeType.REFRESH}, mappedBy="deliveryNode") private Set deliveryTransports = new HashSet(); /** the list of orders that are picked up at this node */ // @OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="pickupNode") private Set pickupTransports = new HashSet(); /** the route to which this node belongs */ // @ManyToOne(targetEntity=Route.class, optional=false, fetch=FetchType.EAGER) // @JoinColumn(name="ROUTEID", nullable=false, insertable=true, updatable=true) private Route route = null; /** the tour this node belongs to, null if this node does not belong to a tour (e.g first node of a route) */ // @ManyToOne(targetEntity=Tour.class, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, optional=true, fetch=FetchType.LAZY) // @JoinColumn(name="TOURID", nullable=true, insertable=true, updatable=true) private Tour tour; // @Transient private String transientField = "node original value"; public Set getDeliveryTransports() { return deliveryTransports; } public void setDeliveryTransports(Set deliveryTransports) { this.deliveryTransports = deliveryTransports; } public Set getPickupTransports() { return pickupTransports; } public void setPickupTransports(Set pickupTransports) { this.pickupTransports = pickupTransports; } public Long getNodeID() { return nodeID; } public long getVersion() { return version; } protected void setVersion(long version) { this.version = version; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Route getRoute() { return route; } public void setRoute(Route route) { this.route = route; } public Tour getTour() { return tour; } public void setTour(Tour tour) { this.tour = tour; } public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append( name + " id: " + nodeID ); if ( route != null ) { buffer.append( " route name: " ) .append( route.getName() ) .append( " tour name: " ) .append( ( tour == null ? "null" : tour.getName() ) ); } if ( pickupTransports != null ) { for (Iterator it = pickupTransports.iterator(); it.hasNext();) { buffer.append("Pickup transports: " + it.next()); } } if ( deliveryTransports != null ) { for (Iterator it = deliveryTransports.iterator(); it.hasNext();) { buffer.append("Delviery transports: " + it.next()); } } return buffer.toString(); } public String getTransientField() { return transientField; } public void setTransientField(String transientField) { this.transientField = transientField; } protected void setNodeID(Long nodeID) { this.nodeID = nodeID; } }