"Pstn"という名前のテーブルがあり、Userテーブルがあります。ユーザーはPstnテーブルを使用する必要はありません。しかし、一部のユーザーはそれを使用することができます。したがって、pstnにユーザがいれば、誰が誰かを見たいと思っています。休止状態の注釈を設定するにはどうしたらいいですか?hibernate注釈ベースの関係を設定するにはどうすればいいですか?
pstnBbkTable.setVisibleColumns(new Object[]{"pstn", "bbk", "user.firstName", "inReserve", "creationDate", "expireDate", "button"});
java.lang.IllegalArgumentExceptionが:IdsはIDが不足し、コンテナまたは生成列として存在しなければならない:com.vaadin.ui.Table.setVisibleColumnsでuser.firstName (Table.java:691)
Userテーブル:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_Id")
private long userId;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "first_name", nullable = false)
private String firstName;
@Column(name = "last_name", nullable = false)
private String lastName;
PSTN表:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "pstn_Id")
private long pstnId;
@Column(name = "pstn")
private String pstn;
@Column(name = "bbk")
private String bbk;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_Id")
private User user;
*******************更新された解決策***************
私はpstn bean上記のようなフィールド。私はそれがFetchType.EAGER-Lazyのために発生したと思います。
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_Id")
private User owner;
私が右のことだ たら...本当にはっきりしていない...それが理由FetchType.EAGER、レイジーで発生したと思いますか? もしあなたがPstnテーブルのnull可能なFKユーザIDを望むならば、 – Zeromus
@Zeromusはい、しかし、すべてのpstnデータをリストしようとすると、上記のようなエラーが出ます。 java.lang.IllegalArgumentException:IDがコンテナ内に存在するか、生成された列としてIDが存在しない場合:user.firstName \t at com.vaadin.ui.Table.setVisibleColumns(Table.java:691) –
user.firstNameは実際にはuserId.firstNameではありませんか? その列が見つからないようです – Zeromus