私は2つのオブジェクトUser
とHouse
を持っています。 1人のユーザーが複数の家を持つことができます。 House.class
から休止状態でANDを使用する方法5.2基準?
注釈:
@Entity
@Table(name="house")
public class House {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="house_id")
private int id;
@ManyToOne
@JoinColumn(name="user_id")
private User user;
@Column(name="country")
private String country;
@Column(name="city")
private String city;
@Column(name="street")
private String street;
@Column(name="post_code")
private String postCode;
@Column(name="house_number")
private String houseNumber;
@Column(name="flats")
private int flats;
@Column(name="picture")
private String picture;
@Column(name="surname_first") // order names will be written in receipt
private Boolean writeSurnameFirst;
@Column(name="cut_name") // Nado ili net sokrashat imena
private Boolean cutName;
@ManyToOne
@JoinColumn(name="currency_id")
private Currency currency;
@ManyToOne
@JoinColumn(name="documentation_lang_id")
private Languages documentationLang;
@Column(name="default_house")
private Boolean defaultHouse;
私はUser
と列defaultHouse = true
に基づいてHouse
オブジェクトを取得する必要があります。
私はこのコードを試してみましたが、私はそれにUser
を実装する方法を取得することはできません:実際builder.and()
で
tx = sess.beginTransaction();
// create criteria builder
CriteriaBuilder builder = sess.getCriteriaBuilder();
// create criteria
CriteriaQuery<House> query = builder.createQuery(House.class);
// specify criteria root
Root<House> root = query.from(House.class);
query.select(root).where(builder.equal(root.get("default_house"), true)
.and(builder.equal(root.get(House.getUser), user)));
house = sess.createQuery(query).getSingleResult();
tx.commit();