小编eat*_*ode的帖子

FetchMode Join与SubSelect

我有两个表Employee和Department以下是两个表的实体类

Department.java
@Entity
@Table(name = "DEPARTMENT")
public class Department {
    @Id
    @Column(name = "DEPARTMENT_ID")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer departmentId;
    @Column(name = "DEPARTMENT_NAME")
    private String departmentName;
    @Column(name = "LOCATION")
    private String location;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "department", orphanRemoval = true)
    @Fetch(FetchMode.SUBSELECT)
    //@Fetch(FetchMode.JOIN)
    private List<Employee> employees = new ArrayList<>();
}


Employee.java
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
    @Id
    @SequenceGenerator(name = "emp_seq", sequenceName = "seq_employee")
    @GeneratedValue(generator = "emp_seq")
    @Column(name = "EMPLOYEE_ID")
    private Integer employeeId;
    @Column(name = "EMPLOYEE_NAME")
    private String …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa join sql-subselect

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

LockModeType Jpa之间的区别

我对JPA中LockModeTypes的工作感到困惑:

  1. LockModeType.Optimistic

    • 它在提交时递增版本.
    • 这里的问题是:如果我的实体中有版本列,并且如果我没有指定这种锁定模式,那么它的工作原理类似于什么呢?
  2. LockModeType.OPTIMISTIC_FORCE_INCREMENT

    • 即使实体未更新,它也会增加版本列.
    • 但是,如果在提交此事务之前任何其他进程更新了同一行,它的用途是什么?这笔交易无论如何都会失败.那有什么用呢LockModeType
  3. LockModeType.PESSIMISTIC_READ

    • 此锁定模式发出select for update nowait(如果未指定提示超时)..
    • 所以基本上这意味着没有其他事务可以更新此行,直到此事务被提交,那么它基本上是一个写锁,为什么它被命名为Read锁?
  4. LockModeType.PESSIMISTIC_WRITE

    • 此锁定模式还会发出select for update nowait(如果未指定提示超时).
    • 这里的问题是这个锁定模式和LockModeType.PESSIMISTIC_READ我看到两个触发相同查询的区别是什么?
  5. LockModeType.PESSIMISTIC_FORCE_INCREMENT

    • 这样做select for update nowait(如果没有指定提示超时)并且还增加版本号.
    • 我完全没有得到它的使用.
    • 为什么需要版本增量for update no wait

oracle concurrency hibernate jpa transactions

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

令人困惑的代码,编译好.这段代码如何工作?

下面的代码编译并给出1输出,这对我来说有点困惑.我试过javap这个,但从那里我也想不出来.我已经检查了类似的帖子,但在这里找不到类似的问题.

看看代码:

int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

这是字节码

Compiled from "Test.java"
public class Test {
  public Test();
  public static void main(java.lang.String[]);
}
Run Code Online (Sandbox Code Playgroud)

这些类型如何在这里工作?它是否依赖于数据类型的大小?代码如何工作?

java types

14
推荐指数
2
解决办法
592
查看次数

gradle jar和汇编任务之间的区别

gradle中java插件的汇编和jar任务有什么区别?

我尝试使用示例Hello world项目执行它们,它们似乎都做同样的工作.

gradle

11
推荐指数
1
解决办法
4499
查看次数

从表中选择WHERE子句中的Varying IN列表

我正在处理我正在处理的项目中的问题,我不能给你实际的代码,但我已经创建了一个可执行的示例代码,如下所示

这里temptemp_id两个表

  1. temp table包含以逗号分隔的id列表 VARCHAR2
  2. temp_id 表包含实际的ID NUMBER

我想要搜索行temp_id通过获取表ids从逗号分隔的ID列表temp

//DDLs to create table
CREATE TABLE temp(ids VARCHAR2(4000));
CREATE TABLE temp_id(data_id NUMBER);

//DMLs to populate test data
INSERT INTO temp VALUES('1, 2, 3');

INSERT INTO temp_id VALUES(1);
INSERT INTO temp_id VALUES(2);
INSERT INTO temp_id VALUES(3);
INSERT INTO temp_id VALUES(4);
INSERT INTO temp_id VALUES(5);
Run Code Online (Sandbox Code Playgroud)

此查询不起作用

SELECT * FROM temp_id WHERE data_id IN (SELECT to_number(COLUMN_VALUE) FROM XMLTABLE(SELECT ids FROM temp));
Run Code Online (Sandbox Code Playgroud)

工作查询

SELECT * …
Run Code Online (Sandbox Code Playgroud)

sql oracle where-in xmltable

9
推荐指数
1
解决办法
2221
查看次数

Zeppelin:如何在zeppelin中重启sparkContext

我正在使用隔离模式的zeppelins spark解释器,在这种模式下,它将为spark集群中的每个笔记本启动一项新工作.笔记本执行完成后,我想通过zeppelin终止这项工作.为此我做了sc.stop这个停止sparkContext并且作业也从spark集群停止.但是下次当我尝试运行笔记本时,它不再启动了sparkContext.那怎么办呢?

apache-spark apache-zeppelin

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

在速度模板中调用java方法

我有一个类CurrencyUtil我已经编写了一个方法,convertCurrency(String symbol, long value)我想从速度模板中调用这个方法.我正在放置此类的对象,map.put("formatter", currencyUtil);并在模板中我使用标记,$formatter.convertCurrency($currency, $total)但是当呈现模板时,它不会打印结果.

这里我的问题是,如果java方法和模板中的参数名称相同吗?还是有其他问题吗?

templates velocity

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

为什么在使用null引用访问静态时不会出现NullPointerException?

在下面的代码中,我们获得i了null引用的值,尽管a NPE不存在.

public class Test {
    static int i = 10;

    Test getTest() {
        return null;    
    }

    public static void main(String args[]) {
        Test t = new Test();
        System.out.println(t.getTest());  
        System.out.println(t.getTest().i);
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

null
10
Run Code Online (Sandbox Code Playgroud)

java static nullpointerexception

6
推荐指数
2
解决办法
286
查看次数

hibernate中的全局临时表

在 hbm2ddl.auto 的更新模式下,hibernate 创建全局临时表,如下所示,

Hibernate: create global temporary table HT_PASSENGER_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows
Hibernate: create global temporary table HT_TRANSPORTATION_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows
Hibernate: create global temporary table HT_VEHICLE (VEHICLE_ID number(10,0) not null) on commit delete rows
Run Code Online (Sandbox Code Playgroud)

这些桌子是什么?这些和缓存机制有关吗?为什么 hibernate 创建这些表?

hibernate

6
推荐指数
1
解决办法
6537
查看次数

什么暂停交易意味着什么?

如果我们使用Propagation Requires_new,则它会暂停现有事务并创建新事务.那对它意味着suspends a transaction什么呢?挂起的交易会发生什么?场景背后究竟发生了什么?

更新

暂停交易所持有的资源会发生什么?

spring transactions

6
推荐指数
1
解决办法
3233
查看次数