我想知道是否可以使用注释attributes使用JPA2在以下类中持久保存地图
public class Example {
long id;
// ....
Map<String, String> attributes = new HashMap<String, String>();
// ....
}
Run Code Online (Sandbox Code Playgroud)
由于我们已经有一个预先存在的生产数据库,所以理想情况下,值attributes 可以映射到以下现有表:
create table example_attributes {
example_id bigint,
name varchar(100),
value varchar(100));
Run Code Online (Sandbox Code Playgroud) 服务器上有一个git控制文件夹,其中检出主分支,并且修改了一大堆文件但未提交.有没有办法让我将更改提交到一个单独的分支,以便我可以回到一个干净的版本?
即我想有效地撤消所有这些人的变化,但是将它们存储在另一个机会中,所以如果那个人想要他们的改变,他们可以切换到那个分支.
(是的,我知道这不是git的设计工作,但这是我的情况!)任何想法非常感谢.
我已经设置了Git,因此它不会提交不一致的行结尾.问题是即使它们不是,一大堆文件也会被修改.我键入什么来使这些文件在本地端固定行结尾?
# git checkout dev
M src/au/policy/dao/EmailQueue.java
M src/au/policy/dao/EmailQueueFactory.java
M src/au/policy/dao/PolicyPublisher.java
Already on 'dev'
# git diff
warning: LF will be replaced by CRLF in src/au/policy/dao/EmailQueue.java
warning: LF will be replaced by CRLF in src/au/policy/dao/EmailQueueFactory.java
warning: LF will be replaced by CRLF in src/au/policy/dao/PolicyPublisher.java
Run Code Online (Sandbox Code Playgroud)
这是我添加到我的git配置文件中的内容,它似乎做了我想要的除此问题:
autocrlf = true
Run Code Online (Sandbox Code Playgroud) 什么List<?>意思,它只是意味着一个未指定类型的对象列表?
谷歌搜索字符串<?>返回没有任何用处(:
我想知道如果有一个简单的方法,即是一个简单的cron作业,定期拉从一个远程git仓库到本地只读镜像备份的目的?
理想情况下,它会拉动所有分支和标签,但主/主干/头部就足够了.
我只需要一种方法来确保如果主git服务器死亡,我们有一个备份位置,我们可以手动故障转移到.
从bash脚本运行命令时,bash是否总是等待上一个命令完成,或者只是启动命令然后继续执行下一个命令?
ie:如果从bash脚本运行以下两个命令,事情可能会失败?
cp /tmp/a /tmp/b
cp /tmp/b /tmp/c
Run Code Online (Sandbox Code Playgroud) 我从中获取数据的一些站点返回UTF-8字符串,其中UTF-8字符被转义,即: \u5404\u500b\u90fd
是否有内置的可可功能可能有助于此,或者我必须编写自己的解码算法.
由于我们公司永远不会让像github这样的第三方靠近我们的源代码,任何人都知道有关如何设置像github这样的scm服务器的任何软件或设置指南或博客,即它会支持
如果我能做到这一点,我可以看到从svn/cvs到git的潜在大规模迁移.(我能看到的唯一绊脚石就是Windows Tortise SVN用户在使用Git windows替代方案时遇到困难)
当Person对象包含使用@ElementCollection存储的数据时,我无法解决如何使用JPA 批量删除Person对象的问题.关于如何做到这一点的任何想法将非常感激.
@Entity
@Table(name="at_person")
public class Person implements Comparable<Person> {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private long id = 0;
@Column(name="name", nullable = true, length = 128)
private String name = "";
@ElementCollection
@Column(name = "email")
@CollectionTable(name = "person_email", joinColumns = @JoinColumn(name = "person_id"))
private Set<String> email = new HashSet<String>();
}
Run Code Online (Sandbox Code Playgroud)
我目前正在做的是这个,并且它因外键约束错误而失败:
Query query=em.createQuery("DELETE FROM Person");
Run Code Online (Sandbox Code Playgroud)
引起:java.sql.SQLException:完整性约束违规:外键无动作; FKCEC6E942485388AB表:PERSON_EMAIL
如果它可以是纯粹的JPA注释而不是Hibernate注释,那将是一个奖励!
我正在学习JPA,示例中的一般模式似乎如下:
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
// ....
em.getTransaction().commit();
em.close();
Run Code Online (Sandbox Code Playgroud)
现在我想知道为什么我们不断创建和关闭EntityManagers,而不是保持开放并且只是开始新的交易?保持开放与关闭它的好处和成本是什么?