我有我的实体:
@Entity
@Table(name="performances")
@AssociationOverrides({
@AssociationOverride(name="id.player", joinColumns=@JoinColumn(name="player_id")),
@AssociationOverride(name="id.season", joinColumns=@JoinColumn(name="season_id"))
})
public class Performance extends AbstractEntity<PerformanceID> {
private static final long serialVersionUID = 1L;
@EmbeddedId
@Getter @Setter
private PerformanceID id;
@Getter @Setter
private int goals;
public Player getPlayer(){
return id.getPlayer();
}
public Season getSeason(){
return id.getSeason();
}
和:
@Embeddable
public class PerformanceID implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne(fetch=FetchType.LAZY, targetEntity=Player.class)
@JoinColumn(name="player_id")
@Getter @Setter
private Player player;
@ManyToOne(fetch=FetchType.LAZY, targetEntity=Season.class)
@JoinColumn(name="season_id")
@Getter @Setter
private Season season;
Query query = getSession().createQuery("from Performance where id.player.name = 'Claudio'");
return query.list();
Criteria criteria = getSession().createCriteria(Performance.class);
criteria.add(Restrictions.ilike("id.player.name", "Claudio"));
return criteria.list();
Criteria criteria = createCriteria();
criteria.createAlias("id.player", "player");
criteria.add(Restrictions.ilike("player.name", "Claudio"));
return criteria.list();
Hibernate:this_.player_id选为player2_1_0_,this_.season_id选为season3_1_0_,this_.goals选为goals1_0_?
但它将失败,并出现SQLGrammarException:“Missing FROM clause for table player1_”
您的映射不正确。EmbeddableId
类应该包含@id
(因此Serializable
)值,而不是映射或复杂类型。您应该将映射移动到实体类中,然后只在embbedableid
类中包含它们的ID。请参阅以下示例(来自JPA2.2规范)
@Embeddable
public class DependentId {
String name;
long empPK; // corresponds to PK type of Employee
}
@Entity
public class Dependent {
@EmbeddedId DependentId id;
// id attribute mapped by join column default
@MapsId("empPK") // maps empPK attribute of embedded id
@ManyToOne Employee emp;
}
需要使用Elasticsearch 0.20.2及以上的版本
使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。 示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(objects
使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值, 或是比较变量和常量的值。 示例 下面的例子,判断 $(CC) 变量是否 gcc ,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(o
问题内容: 我有两个这样的表,两个都是单独的表 另一个表包含以下结构 我需要从表II中选择AccountNo或TempAccountNo,Mycolumn,条件是 我需要选择 我需要选择 我该如何实现。 问题答案:
问题内容: 看来我在 条件查询 方面遇到了很大的问题。 我必须做一个 有条件的更新 。我在这里写下我想做的事: 显然,这是行不通的。 任何的想法? 问题答案: 支持声明。 或者你也可以使用
问题内容: 如何将sql查询写入hibernate条件? 问题答案: 想我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例: