相关疑难解决方法(0)

MySQL中的ROW_NUMBER()

MySQL是否有一种很好的方式来复制SQL Server功能ROW_NUMBER()

例如:

SELECT 
    col1, col2, 
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
Run Code Online (Sandbox Code Playgroud)

然后,我可以,例如,添加一个限制intRow为1 的条件,以获得col3(col1, col2)对最高的单行.

mysql sql row-number rank greatest-n-per-group

268
推荐指数
11
解决办法
49万
查看次数

Hibernate并没有PK

是否可以创建一个@Entity不包含主键/ Id 的表(来自JPA注释的Hibernate )?

我知道这不是一个好主意; 表应该有一个主键.

java database hibernate jpa

52
推荐指数
5
解决办法
6万
查看次数

如何建立基于非关键字段的关系?

我有两个实体如下,当我尝试将项目添加到我的汽车表时,它显示以下错误消息;因此,它不允许我有多个汽车进行'自动'传输.

错误:

 #1062 - Duplicate entry 'Auto' for key 'UK_bca5dfkfd4fjdhfh4ddirfhdhesr' 
Run Code Online (Sandbox Code Playgroud)

实体:

汽车

@Entity
public class Car  implements java.io.Serializable {


    @Id
    @GeneratedValue
    long id;
    @Column(name="transmission", nullable = false)
    String transmission;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "car")
    Set<CarFactory> factories;
    ...
}
Run Code Online (Sandbox Code Playgroud)

汽车表的样本值:

10 Auto
12 Auto
43 Manual
54 Manual
65 Normal
68 Standard
90 Normal
99 NoGear
Run Code Online (Sandbox Code Playgroud)

CarFactory

@Entity
public class CarFactory implements java.io.Serializable {

   @Id
   @JoinColumn(name="transmission",referencedColumnName = "transmission")
   @ManyToOne
   Car car;

   @Id
   @JoinColumn(name="factory_id", referencedColumnName= "id")
   @ManyToOne
   Factory factory;

   ... …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate jpa hibernate-mapping

21
推荐指数
2
解决办法
931
查看次数

如何设置没有@id元素的@entity?

我有这个豆:

@Entity
@Table(name = "accesos")
public class Acceso implements Serializable {
    /** */
    @Column(name = "idUser")
    private String idUser;
    /** */
    @ManyToOne
    @JoinColumn(name = "idArea")
    private Area area;
    /** */
    @ManyToOne
    @JoinColumn(name = "idRol")
    private Rol rol;
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

原因:org.hibernate.AnnotationException:未为实体指定标识符:com ... Acceso

我该如何设置这个豆?我需要的是根据用户ID获取他有权访问的所有ROL-AREA。

我尝试将更@Entity改为@Embedded,但是当我进行搜索时没有返回任何结果,即使在日志中也没有执行SQL语句。

java hibernate

3
推荐指数
2
解决办法
1万
查看次数

没有ID的Java /休眠视图实体

所以我在SqlServer数据库中有一个View,但是此视图没有任何主键或Id列。我的Java项目中有一个实体来表示这样的视图:

@Entity
@Immutable
public class FooViewEntity implements Serializable {
    private static final long serialVersionUID = 348348L;

    @Column(name = "ColA")
    private String colA;

    @Column(name = "ColB")
    private String colB;

    @Column(name = "ColC")
    private String colC;
}
Run Code Online (Sandbox Code Playgroud)

但是每次我尝试使用存储库从视图中获取时,都会出现此错误:

org.hibernate.AnnotationException: No identifier specified for entity: com.FooViewEntity 
Run Code Online (Sandbox Code Playgroud)

遵循本教程之后,我将实体更改为:

@Entity
@Immutable
public class FooViewEntity implements Serializable {
    private static final long serialVersionUID = 348348L;

    @Id
    @GeneratedValue(generator="uuid2")
    @GenericGenerator(name="uuid2", strategy="uuid2")
    @Column(columnDefinition = "BINARY(16)", updatable = false, insertable = false)
    private UUID uuid;

    @Column(name = "ColA") …
Run Code Online (Sandbox Code Playgroud)

java sql-server hibernate jpa view

3
推荐指数
1
解决办法
530
查看次数