Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] @OneToOne and @PrimaryKeyJoinColumn do not fetch the object on H2/HSQL database

Hello,

I have this construct:

@Entity
class PickOrder {
  @OneToOne(optional = false, fetch = FetchType.EAGER)
  @PrimaryKeyJoinColumn(name = "auf_nr")
  OrderProgress progress;
}

@Entity
@Table(name = "order_infos")
public class OrderProgress implements Comparable<OrderProgress> {
	@Id
	@Column(name = "auf_nr", length = 18)
	String id;

	float done_percent;
	float shortfalls_percent;
	int shortfalls;

	public OrderProgress() {
	}

	@Override
	public String toString() {
		String value = this.done_percent + "%"; //$NON-NLS-1$
		if (this.shortfalls_percent > 0.f) {
			value += " [" + this.shortfalls_percent + "%]"; //$NON-NLS-1$
//$NON-NLS-2$
		}
		return value;
	}

	public int compareTo(final OrderProgress o) {
		float result = this.done_percent - o.done_percent;
		if (result == 0.f) {
			result = this.shortfalls_percent - o.shortfalls_percent;
		}
		return (int) result;
	}
}

When calling "select o from PickOrder" the progress object is never
filled with the data from the table (which is a view actually).
When I call "select o from PickOrder where o.id=1" it is sometimes
fetched sometimes not. The generated SQL is correct. Any Ideas what
might cause such a behaviour on H2 (HSQL)? The generated SQL does not contain JOINs but its rather 2 calls to the DB first getting the PickOrder list and then for each order a select to the order_infos table is made.

Thanks,
Phil



Back to the top