G
Gelöschtes Mitglied 68249
Gast
Hallo,
ich habe eine Java-Klasse als DB-Entität.
Alle Joins funktionieren, bis auf den LOGICAL_SYSTEM_UUID. Hier tut Java so, als wenn es die @-Zeile nicht gäbe und versucht immer den Namen der Variablen als Spaltenname zu verwenden.
Ich habe auch mal den Namen der Variablen auf den Spaltennamen geändert, aber dann kommt der Fehler, dass er die Verknüpfung nicht auflösen kann.
Falls es etwas hilft: Die Spalte war mal nur ein String, ohne Verknüpfung, aber mittlerweile habe ich das Dahinterliegende Objekt auch im Code abgebildet. Ich steige da einfach nicht durch, warum er nur an der Stelle nicht die JOIN-Definition verwendet. Es ist auch egal, wo ich sie im Code hin kopieren.
ich habe eine Java-Klasse als DB-Entität.
Java:
@Entity
@Table(name = "OBJ_WINDOWSORDER")
@NamedQueries ( value={
@NamedQuery(name = "WindowsOrder.getByOrderNo", query = "SELECT w FROM WindowsOrder w WHERE w.orderNo = :orderno"),
})
public class WindowsOrder implements SearchableEntity {
@Id
@Column(name = "UUID", length = 36)
private String uuid;
@JoinColumn(name = "LOGICAL_SYSTEM_UUID", referencedColumnName = "UUID" )
private WindowsOS windowsOs;
@Column(name = "ORDER_NO")
private Integer orderNo;
@Column(name = "POS_NO")
private Integer posNo;
@Column(name = "PROIPS_NO")
private Integer proIpsNo;
@Column(name = "ORDER_TYPE", length = 50)
@Enumerated(EnumType.STRING)
private OrderType orderType;
@Column(name = "ORDER_DATE", columnDefinition = "TIMESTAMP")
private LocalDate orderDate;
@JoinColumn(name = "TRANSMISSION_TYPE", referencedColumnName = "UUID" )
private KeyValue transmissionType;
@Column(name = "FISP_REQUEST", length = 15)
private String fispRequest;
@Column(name = "FISP_ITEM", length = 15)
private String fispItem;
@Column(name = "CUSTOMER_OE", length = 8)
private String customerOE;
@Column(name = "CUSTOMER_NAME", length = 100)
private String customerName;
@Column(name = "CUSTOMER_PHONE", length = 100)
private String customerPhone;
@Column(name = "CONTRACT_NO", length = 50)
private String contractNo;
@Column(name = "COST_CENTER", length = 50)
private String costCenter;
@JoinColumn(name = "INSTITUTE_UUID", referencedColumnName = "UUID" )
private Institute client;
@Column(name = "DATE_DESIRED", columnDefinition = "TIMESTAMP")
private LocalDate dateDesired;
@Column(name = "ORDER_PROJECT")
private String project;
@Column(name = "INVOICE", columnDefinition = "TIMESTAMP")
private LocalDate invoice;
@Column(name = "TICKET_NO")
private String ticketNo;
@Column(name = "EDITOR")
private String editor;
@Column(name = "ORDER_STATE")
@Enumerated(EnumType.STRING)
private OrderState orderState;
@Column(name = "FINISHED", columnDefinition = "TIMESTAMP")
private LocalDate finished;
@Lob
@Column(name = "ORDER_COMMENT")
private String comment;
@JoinColumn(name = "SERVER_FUNCTION_TYPE", referencedColumnName = "UUID" )
private KeyValue serverFunctionType;
@JoinColumn(name = "SERVER_CONFIGURATION", referencedColumnName = "UUID" )
private KeyValue serverConfiguration;
@Column(name = "IP_ADDRESS")
private String ipAddress;
@JoinColumn(name = "ENVIRONMENT", referencedColumnName = "UUID" )
private KeyValue environment;
@JoinColumn(name = "DATA_CENTER", referencedColumnName = "UUID" )
private KeyValue dataCenter;
@JoinColumn(name = "HARDWARE_TYPE", referencedColumnName = "UUID" )
private KeyValue hardwareType;
@Column(name = "VIRTUAL_HARDWARE")
private Boolean virtualHardware;
//GETTER UND SETTER
}
Alle Joins funktionieren, bis auf den LOGICAL_SYSTEM_UUID. Hier tut Java so, als wenn es die @-Zeile nicht gäbe und versucht immer den Namen der Variablen als Spaltenname zu verwenden.
Code:
Interne Ausnahme: java.sql.SQLSyntaxErrorException: ORA-00904: "WINDOWSOS": ungültige ID
Ich habe auch mal den Namen der Variablen auf den Spaltennamen geändert, aber dann kommt der Fehler, dass er die Verknüpfung nicht auflösen kann.
Falls es etwas hilft: Die Spalte war mal nur ein String, ohne Verknüpfung, aber mittlerweile habe ich das Dahinterliegende Objekt auch im Code abgebildet. Ich steige da einfach nicht durch, warum er nur an der Stelle nicht die JOIN-Definition verwendet. Es ist auch egal, wo ich sie im Code hin kopieren.