このウィザードを使用して、データベースからエンティティクラスを作成しました。一部の表はクラスに変換されていませんが、リレーションシップを識別する属性があります。Netbeansウィザードデータベースのエンティティクラス(すべてのテーブルがマッピングされているわけではありません)
this is my db ERD(mysqlの)
と、これはユーザーのエンティティクラス(属性)である
@Entity
@Table(name = "user")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u"),
@NamedQuery(name = "User.findByOid", query = "SELECT u FROM User u WHERE u.oid = :oid"),
@NamedQuery(name = "User.findByUsername", query = "SELECT u FROM User u WHERE u.username = :username"),
@NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User u WHERE u.password = :password"),
@NamedQuery(name = "User.findByEmail", query = "SELECT u FROM User u WHERE u.email = :email"),
@NamedQuery(name = "User.findByAddress", query = "SELECT u FROM User u WHERE u.address = :address"),
@NamedQuery(name = "User.findBySince", query = "SELECT u FROM User u WHERE u.since = :since")})
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "oid")
private Integer oid;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 15)
@Column(name = "username")
private String username;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 15)
@Column(name = "password")
private String password;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "email")
private String email;
@Size(max = 50)
@Column(name = "address")
private String address;
@Basic(optional = false)
@NotNull
@Column(name = "since")
@Temporal(TemporalType.DATE)
private Date since;
@JoinTable(name = "favorite", joinColumns = {
@JoinColumn(name = "user_oid", referencedColumnName = "oid")}, inverseJoinColumns = {
@JoinColumn(name = "wheelchair_oid", referencedColumnName = "oid")})
@ManyToMany
private List<Wheelchair> wheelchairList;
@ManyToMany(mappedBy = "userList1")
private List<Wheelchair> wheelchairList1;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "senderOid")
private List<Comment> commentList;
@JoinColumn(name = "role_oid", referencedColumnName = "oid")
@ManyToOne(optional = false)
private Role roleOid;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "userOid")
private List<Orthopedy> orthopedyList;
public User() {
}
...
私は何かを理解することはできません。自身がテーブルに参加している を? なぜ私はuserList1とwheelchairList1を持っていますか?それはOWNテーブルを識別する必要がありますか?この場合、ここで名前を変更するか、XMLファイルの名前を変更する必要がありますか? なぜ
@OneToMany(cascade = CascadeType.ALL, mappedBy = "userOid")
private List<Orthopedy> orthopedyList;
? これはOneToOneである必要があります...
さらに、「エンティティクラスからのJSF」ウィザードは、ユーザーを管理するCRUD操作を作成します。どのようにして結合表を管理できますか?私は何のようなコントローラに何かを書く必要がありますか?
私はこれを学ぶことができるいくつかのリソースをリンクしてください。エンティティを作成中
は、それは、多くの関係に多くを持っていたテーブルのすべての主キーを持つテーブル でもないためのクラスを作成しますそんなに
このコードはセッションBeanになりますか? – Marco
@MarcoステートレスローカルセッションBeanでそれをやった – 3gth
私のOWNテーブルはどうですか?あなたはそれについて何か知っていますか? – Marco