小编Moa*_*did的帖子

Spring数据:CrudRepository的保存方法和更新

我想知道如果它在数据库中找到已经存在的条目,那么该{save}方法CrudRepository是否进行更新:

@Repository
public interface ProjectDAO extends CrudRepository<Project, Integer> {}

@Service
public class ProjectServiceImpl {

@Autowired private ProjectDAO pDAO;

public void save(Project p) { pDAO.save(p); } }
Run Code Online (Sandbox Code Playgroud)

因此,如果我在已注册的条目上调用该方法,它会在找到更改的属性时更新它吗?

谢谢.

database hibernate spring-mvc spring-data spring-data-jpa

24
推荐指数
3
解决办法
6万
查看次数

在休眠中删除Order

我有4个实体:

与companyContract有关的个人资料:

@OneToMany(fetch = FetchType.EAGER, mappedBy = "profile", cascade = { CascadeType.ALL })
@Fetch(value = FetchMode.SUBSELECT)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<CompanyContract> companyContracts;
Run Code Online (Sandbox Code Playgroud)

CompanyContract:与时间表有关系:

@OneToMany(mappedBy = "companyContract", cascade = { CascadeType.ALL },orphanRemoval = true, fetch = FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<Timesheet> timesheets;

    @ManyToOne
@JoinColumn(name = "IDPROFILE")
private Profile profile;
Run Code Online (Sandbox Code Playgroud)

时间表与发票有关系:

@OneToMany(mappedBy = "timesheet", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<Invoice> invoices;

@ManyToOne
@JoinColumn(name = "IDCONTRACT") …
Run Code Online (Sandbox Code Playgroud)

java mysql spring hibernate

8
推荐指数
1
解决办法
662
查看次数

Java 8 LocalDate到JavaScript日期

我想将这个Java转换LocalDate为JavaScript Date:

{
    "date": {
        "year": 2016,
        "month": "NOVEMBER",
        "dayOfMonth": 15,
        "monthValue": 11,
        "dayOfWeek": "TUESDAY",
        "era": "CE",
        "dayOfYear": 320,
        "leapYear": true,
        "chronology": {
            "id": "ISO",
            "calendarType": "iso8601"
        }
    }
Run Code Online (Sandbox Code Playgroud)

javascript java angularjs localdate

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

使用 selenium chrome 驱动程序生成 PDF

要从 HTML 文件生成 PDF,我想使用 selenium Chrome 驱动程序。

我用命令行试了一下:

chrome.exe --headless --disable-gpu --print-to-pdf   file:///C:invoiceTemplate2.html
Run Code Online (Sandbox Code Playgroud)

它工作得很好,所以我想用 JAVA 来做到这一点,这是我的代码:

System.setProperty("webdriver.chrome.driver", "C:/work/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu", "--print-to-pdf",
            "file:///C:/invoiceTemplate2.html");
WebDriver driver = new ChromeDriver(options);
driver.quit();
Run Code Online (Sandbox Code Playgroud)

服务器启动没有问题,但 chrome 使用多个选项卡打开,其中包含我在选项中指定的参数。

有什么解决办法吗?谢谢。

java pdf selenium google-chrome selenium-webdriver

5
推荐指数
1
解决办法
9531
查看次数

Ubuntu 中的 Chrome 无头

我正在尝试使用 chrome headless print to pdf 选项在 ubuntu 中打印一些 pdf 文件,这是我的命令行:

google-chrome --headless --disable-gpu --print-to-pdf  http://www.google.com
Run Code Online (Sandbox Code Playgroud)

现在,如果我像这样运行它,它会完美运行并生成文件。

但是当我在 --print-to-pdf 之后添加文件名时:

google-chrome --headless --disable-gpu --print-to-pdf gen.pdf http://www.google.com
Run Code Online (Sandbox Code Playgroud)

发生错误:

[1213/020159.194304:ERROR:headless_shell.cc(605)] Open multiple tabs is only supported when remote debugging is enabled.
Run Code Online (Sandbox Code Playgroud)

有什么解决办法吗?谢谢。

pdf ubuntu google-chrome headless

5
推荐指数
1
解决办法
3847
查看次数

连接 3 个表 Hibernate 和 JPA

我有三张桌子,我想加入它们,这让我发疯。

表:任务 项目 用户

它们之间都具有多对多关系:就像项目有多个用户,反之亦然,任务有多个用户,反之亦然,项目和用户也是如此。

我正在尝试找到一种在 JPA 和 Hibernate 中实现这一点的方法,我有 2 个选择: ** 1 ** 像这样加入 3 个实体:

项目

   @ManyToMany(fetch = FetchType.EAGER, 
    cascade =
    {
            CascadeType.DETACH,
            CascadeType.MERGE,
            CascadeType.REFRESH,
            CascadeType.PERSIST
    },
    targetEntity = User.class)
  @JoinTable(name = "Collaborators", 
           joinColumns = @JoinColumn(name = "ProjectFk", referencedColumnName = "id", updatable=false, nullable=false), 
           inverseJoinColumns = @JoinColumn(name = "UserFk", referencedColumnName = "id", updatable=false, nullable=false))
  private Set<User> users = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)

用户

    @ManyToMany(fetch = FetchType.EAGER, 
            cascade =
                {
                        CascadeType.DETACH,
                        CascadeType.MERGE,
                        CascadeType.REFRESH,
                        CascadeType.PERSIST
                },
                targetEntity …
Run Code Online (Sandbox Code Playgroud)

sql spring hibernate jpa spring-data

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

PropertyAccessException:访问字段时出错

我有一个实体用户

@Entity
public class User implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;

    public Long getId() {
    return id;
}
...}
Run Code Online (Sandbox Code Playgroud)

我正在尝试从数据库的任务中删除用户:

@Modifying
@Query("DELETE FROM Collaborator c WHERE c.user = :userId AND c.task = :taskId")
void deleteUserFromTask(@Param("userId") Long userId, @Param("taskId") Long taskId);
Run Code Online (Sandbox Code Playgroud)

这是用户和协作者(我要从中删除的表)之间的关系:在用户中

@JsonIgnore
@OneToMany(mappedBy="user", fetch = FetchType.EAGER)
private Set<Collaborator> collaborators = new HashSet<>(); 
Run Code Online (Sandbox Code Playgroud)

合作者中

    @ManyToOne(cascade = {CascadeType.MERGE,
                      CascadeType.DETACH,
                      CascadeType.REFRESH }, 
           fetch = FetchType.EAGER)
@JoinColumn(name …
Run Code Online (Sandbox Code Playgroud)

mysql spring hibernate spring-mvc spring-data-jpa

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

@OneToMany 删除孩子

我有两个这样的实体:

public class Client {
  ...
@OneToMany(mappedBy = "client", cascade = { CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE },orphanRemoval = true, fetch=FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<CompanyContract> companyContracts;
  ...
}
Run Code Online (Sandbox Code Playgroud)

公司合同:

public class CompanyContract {

...

@ManyToOne
@JoinColumn(name = "IDCLIENT")
private Client client;

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

我想删除这样的 companyContract :

client.getCompanyContracts().remove(companyContract)
client = clientService.updateClient(client);
Run Code Online (Sandbox Code Playgroud)

但是删除过程没有发生

我究竟做错了什么 ?

编辑

这是我的 DAO 中的 updateClient 方法:

@Override
@Transactional
public Client updateClient(Client client) {

    return entityManager.merge(client);
}
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

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

休眠-无法找到ID为的实体

我正在使用这种方法从我的DAO中的数据库中检索一些数据:

@Override
@Transactional
public List<History> findLastHistoriesByCount(int gHistoriesCount) {

    List<History> result = new ArrayList<History>();
    result = entityManager
            .createQuery(
                    "SELECT h FROM History h ORDER BY h.eventDate DESC",
                    History.class).setMaxResults(gHistoriesCount).getResultList();

    return result;
}
Run Code Online (Sandbox Code Playgroud)

这是我的历史课:

public class History implements Serializable {

...

@ManyToOne
@JoinColumn(name = "ID_CONTRACT_HISTORY", nullable = true)
private ContractHistory contractHistory;

@ManyToOne
@JoinColumn(name = "ID_SALARY_HISTORY", nullable = true)
private SalaryHistory salaryHistory;

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

但我面临着这个例外:

javax.persistence.EntityNotFoundException:无法找到ID为108的com.xxx.model.ContractHistory

虽然我确定我在表ContractHistory的数据库中有该行

编辑

我已经看过带有@NotFound注释的解决方案了,我不想要它,因为它对我来说只是一个旁路,因为我的数据在那里!我想撤退。

编辑2 ** ContractHistory:**

public class ContractHistory extends implements Serializable {
private static final …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate jpa

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